public function index(SearchModel $searchCriteria) { $result['title'] = 'Estates'; $result['estates'] = array(); $result['categories'] = $this->category->getCategories(); $result['cities'] = $this->city->getCities(); $result['search'] = $searchCriteria; if ($searchCriteria->sort_type !== null) { $orderCriteria = $this->getOrderCriteria($searchCriteria); $is_furnished = $this->getIsFurnishedAsArray($searchCriteria); /* @var $estates \Models\ViewModels\EstateBasicViewModel[] */ $estates = $this->estate->getEstates(isset($searchCriteria->category_id) ? $searchCriteria->category_id : array(), isset($searchCriteria->city_id) ? $searchCriteria->city_id : array(), isset($searchCriteria->ad_type) ? $searchCriteria->ad_type : array(), $searchCriteria->start_price, $searchCriteria->end_price, $searchCriteria->start_area, $searchCriteria->end_area, $searchCriteria->start_floor, $searchCriteria->end_floor, $searchCriteria->location, $is_furnished, $searchCriteria->has_image, $orderCriteria); foreach ($estates as $estate) { $estate->image = $this->setEstateMainImage($estate); $estate->thumbnailName = $this->setImageThumb($estate->image); } $result['estates'] = $estates; } $result['ad_type'] = $this->setAdTypes(); $result['sort_type'] = $this->setSortType(); if ($searchCriteria->sort_type != null) { $result['sort_type'][$searchCriteria->sort_type]['options']['selected'] = true; } else { $result['sort_type'][2]['options']['selected'] = true; } $result['userFavourite'] = $this->setUserFavorites(); View::make('index', $result); if (Auth::isAuth()) { View::appendTemplateToLayout('topBar', 'top_bar.user'); } else { View::appendTemplateToLayout('topBar', 'top_bar.guest'); } View::appendTemplateToLayout('header', 'includes.header')->appendTemplateToLayout('footer', 'includes.footer')->render(); }