예제 #1
0
파일: UrlManager.php 프로젝트: blab2015/seh
 /**
  * @param Hotel $hotel
  * @return bool|string
  */
 public function generateHotelUrl(Hotel $hotel, $lang = null, $absolute = false, $rate = null)
 {
     $brand = $hotel->getBrand()->getArtsysId();
     $city = ($hotel->getCity() and $hotel->getCity()->getSlug()) ? $hotel->getCity()->getSlug() : 'null';
     $region = ($hotel->getRegion() and $hotel->getRegion()->getSlug()) ? $hotel->getRegion()->getSlug() : 'null';
     $country = ($hotel->getRegion() and $hotel->getRegion()->getCountry() and $hotel->getRegion()->getCountry()->getSlug()) ? $hotel->getRegion()->getCountry()->getSlug() : 'null';
     $slug = $hotel->getSlug() ? $hotel->getSlug() : '';
     if ($lang === null) {
         $lang = $this->context->get('language');
     }
     if ($rate and !is_object($rate)) {
         $rate = $this->entityManager->getRepository('SehBundle:Reservit\\Rate')->find($rate);
     }
     $rateSlug = null;
     if ($rate) {
         $rateSlug = sprintf('%s-%s', $this->translator->trans('seo.url.hotel.special_rate.prefix'), $rate->getSlug());
     }
     if ($brand && $slug) {
         if ($brand == 'PDJ') {
             return $this->router->generate('hotel_pdj', array('region' => $region, 'city' => $city, 'slug' => $slug, 'rateSlug' => $rateSlug, 'locale' => $lang), $absolute);
         } elseif ($brand == 'IH') {
             return $this->router->generate('hotel_ih', array('region' => $region, 'city' => $city, 'slug' => $slug, 'rateSlug' => $rateSlug, 'locale' => $lang), $absolute);
         } elseif ($brand == 'QYS') {
             return $this->router->generate('hotel_qys', array('country' => $country, 'region' => $region, 'city' => $city, 'slug' => $slug, 'rateSlug' => $rateSlug, 'locale' => $lang), $absolute);
         } elseif ($brand == 'RDS') {
             return $this->router->generate('hotel_rds', array('country' => $country, 'region' => $region, 'slug' => $slug, 'rateSlug' => $rateSlug, 'locale' => $lang), $absolute);
         }
     }
     return false;
 }