protected function _filterHotels(HotelColl $hotels) { if ($this->session->has_userdata('filter')) { foreach ($this->session->userdata('filter') as $filterGroup => $filters) { if ($filterGroup == 'hotel-name') { foreach ($filters as $hotelName) { $htlNameFiltr = new HtlNameFiltr(); $htlNameFiltr->setFilter($hotelName); $htlNameFiltr->setFilterGrp('hotel-name'); $hotels->addFilter($htlNameFiltr); } } if ($filterGroup == 'hotel-portfolio') { $this->load->model('Do_portfolio'); $htlPrtfoFiltr = new HtlPrtfoFiltr(); foreach ($filters as $portfolioName) { # get equivalent id $portfolio = $this->Do_portfolio->getByName($portfolioName); $portfolioId = empty($portfolio) ? 0 : $portfolio->id; $htlPrtfoFiltr->setFilterGrp('hotel-portfolio'); $htlPrtfoFiltr->setFilter($portfolioId); } $hotels->addFilter($htlPrtfoFiltr); } if ($filterGroup == 'hotel-country') { foreach ($filters as $tagVal) { $htlTagFiltr = new HtlTagFiltr(); $htlTagFiltr->setFilter($tagVal); $htlTagFiltr->setFilterGrp('hotel-country'); $hotels->addFilter($htlTagFiltr); } } if ($filterGroup == 'hotel-coach') { foreach ($filters as $tagVal) { $htlTagFiltr = new HtlTagFiltr(); $htlTagFiltr->setFilter($tagVal); $htlTagFiltr->setFilterGrp('hotel-coach'); $hotels->addFilter($htlTagFiltr); } } } } return $hotels; }