/** * @param array $data * @return array */ public function getOptions($data) { $params = $this->getOptionsForSearch(); $filterData = $this->filterSearchData($data); if ($filterData) { $params['status'] = 'error'; $params['msg'] = $filterData; return $params; } if (isset($data['city'])) { $citySlug = $data['city']; $cityDao = new City($this->getServiceLocator(), 'ArrayObject'); $cityResp = $cityDao->getCityBySlug($citySlug); $params['city_url'] = $citySlug; if (!$cityResp) { $params['status'] = 'error'; $params['msg'] = $this->getTextLineSite(1220); return $params; } $cityId = $cityResp['id']; $timezone = $cityResp['timezone']; } elseif (isset($data['apartel'])) { /** * @var \DDD\Dao\Apartel\General $apartelDao */ $apartelSlug = $data['apartel']; $apartelDao = $this->getServiceLocator()->get('dao_apartel_general'); $apartelData = $apartelDao->getApartelDataBySlug($apartelSlug); if (!$apartelData) { $params['status'] = 'error'; $params['msg'] = $this->getTextLineSite(1220); return $params; } $params['apartel_url'] = $apartelSlug; $params['apartel_name'] = $apartelData['apartel_name']; $cityId = $apartelData['city_id']; $timezone = $apartelData['timezone']; } else { return ['status' => 'error']; } $params['current_date'] = Helper::getCurrenctDateByTimezone($timezone, 'd-m-Y'); $correcrData = $this->correctData($data); $params['city_id'] = $cityId; $params['guest_user'] = $correcrData['guest']; $params['page'] = $correcrData['page']; $params['arrival'] = $correcrData['arrival'] ? Helper::dateForSearch($correcrData['arrival']) : ''; $params['departure'] = $correcrData['departure'] ? Helper::dateForSearch($correcrData['departure']) : ''; $params['status'] = 'success'; return $params; }
public function indexAction() { /** * @var Apartment $apartmentService */ try { if (!($pageSlug = $this->params()->fromRoute('apartmentTitle')) || !ClassicValidator::checkApartmentTitle($pageSlug)) { $viewModel = new ViewModel(); $this->getResponse()->setStatusCode(404); return $viewModel->setTemplate('error/404'); } /* @var $apartmentService \DDD\Service\Website\Apartment */ $apartmentService = $this->getApartmentService(); $apartment = $apartmentService->getApartment($pageSlug); if (!$apartment) { $this->getResponse()->setStatusCode(404); $viewModel = new ViewModel(); return $viewModel->setTemplate('error/404'); } $request = $this->getRequest(); $data = $request->getQuery(); $data['slug'] = $pageSlug; $filtreData = $apartmentService->filterQueryData($data); $reviewCount = false; if ($filtreData) { $apartment['otherParams']['arrival'] = Helper::dateForSearch($data['arrival']); $apartment['otherParams']['departure'] = Helper::dateForSearch($data['departure']); } if (isset($apartment['general']['aprtment_id'])) { $reviewCount = $apartmentService->apartmentReviewCount($apartment['general']['aprtment_id']); } $show_reviews = false; $reviews = []; $apartment['otherParams']['guest'] = (int) $data['guest']; if (isset($data['show']) && $data['show'] == 'reviews' && isset($apartment['general']['aprtment_id']) && $apartment['general']['aprtment_id'] > 0) { $show_reviews = true; $reviewsResult = $apartmentService->apartmentReviewList(['apartment_id' => $apartment['general']['aprtment_id']], true); if ($reviewsResult && $reviewsResult['result']->count() > 0) { $reviews = $reviewsResult['result']; } } } catch (\Exception $e) { $this->gr2logException($e, 'Website: Apartment Page Failed'); return $this->redirect()->toRoute('home'); } $this->layout()->setVariable('view_currency', 'yes'); return new ViewModel(['general' => $apartment['general'], 'amenities' => $apartment['amenities'], 'facilities' => $apartment['facilities'], 'otherParams' => $apartment['otherParams'], 'secure_url_booking' => 'https://' . DomainConstants::WS_SECURE_DOMAIN_NAME . '/booking', 'show_reviews' => $show_reviews, 'reviews' => $reviews, 'reviewCount' => $reviewCount, 'sl' => $this->getServiceLocator(), 'apartelId' => (int) $data['apartel_id'] > 0 ? (int) $data['apartel_id'] : 0]); }