Exemplo n.º 1
0
 /**
  * @param string city
  * @param string checkIn d.m.Y date
  * @param int duration # of nights inside hotel
  * @param array $rooms
  *  [Х][adt] - amount of adults inside room,
  *  [Х][chd] - amount of childs inside room,
  *  [Х][chdAge] - age of child inside room,
  *  [Х][cots] - cots inside room (0 or 1),
  */
 public function actionDefault($city, $checkIn, $duration, array $rooms, $format = 'json')
 {
     $hotelSearchParams = new HotelSearchParams();
     $hotelSearchParams->checkIn = date('Y-m-d', strtotime($checkIn));
     $possibleCities = CityManager::getCitiesWithHotels($city);
     if (!empty($possibleCities)) {
         $hotelSearchParams->city = City::model()->findByPk($possibleCities[0]['id']);
     } else {
         $city = CityManager::getCities($city);
         if (!empty($city)) {
             $hotelSearchParams->city = City::model()->findByPk($city[0]['id']);
         }
     }
     $hotelSearchParams->duration = $duration;
     foreach ($rooms as $i => $room) {
         if ($room['chd'] == 1) {
             $hotelSearchParams->addRoom($room['adt'], $room['cots'], $room['chdAge']);
         } elseif ($room['chd'] == 0) {
             $hotelSearchParams->addRoom($room['adt'], $room['cots'], false);
         } else {
             $this->sendError(200, 'Only 0 or 1 child at one hotel room accepted');
             Yii::app()->end();
         }
     }
     if (empty($possibleCities)) {
         $this->results = array('hotels' => array(), 'hotelsDetails' => array());
     } else {
         $this->results = HotelManager::sendRequestToHotelProvider($hotelSearchParams);
         if (!$this->results) {
             $this->results = array();
         }
     }
     $cacheId = md5(serialize($hotelSearchParams));
     $this->results['cacheId'] = $cacheId;
     $this->results['searchParams'] = $hotelSearchParams->getJsonObject();
     if ($format == 'json') {
         $this->sendJson($this->results);
     } elseif ($format == 'xml') {
         $this->sendXml($this->results, 'hotelSearchResults');
     } else {
         $this->sendError(400, 'Incorrect response format');
         Yii::app()->end();
     }
 }
 /**
  * Disables the feature
  */
 public static function disable()
 {
     remove_action('add_meta_boxes', array(__CLASS__, 'register_metaboxes'));
     remove_action('save_post', array(__CLASS__, 'save_metabox_data'));
     self::$enabled = false;
 }
 /**
  * Gets images from the first post marked as 'hotel' by HotelManager in default language
  * @return Ambigous <Ambigous, multitype:, boolean, multitype:Ambigous <NULL> >
  */
 public static function get_images_from_closest_hotel_in_default_language($args = array())
 {
     $args['post_parent'] = HotelManager::get_hotel_id(null, true);
     return self::get_images_from_post($args);
 }