function getChargedTemplateProcessor() { $order_info = $this->criteria_saver->getOrderInfo(); if (isset($this->requested_data['sorting_field'], $this->requested_data['sorting_order'])) { $order_info = array('sorting_field' => $this->requested_data['sorting_field'], 'sorting_order' => $this->requested_data['sorting_order']); } if (!isset($order_info['sorting_field']) && !isset($order_info['sorting_order']) && SJB_Request::getVar('searchId', false)) { $this->requested_data['sorting_field'] = $order_info['sorting_field'] = !empty($this->requested_data['default_sorting_field']) ? $this->requested_data['default_sorting_field'] : null; $this->requested_data['sorting_order'] = $order_info['sorting_order'] = !empty($this->requested_data['default_sorting_order']) ? $this->requested_data['default_sorting_order'] : null; } $this->criteria_saver->setSessionForOrderInfo($order_info); if (isset($_REQUEST['show_brief_or_detailed'])) { $show_brief_or_detailed = $_REQUEST['show_brief_or_detailed']; } elseif ($this->criteria_saver->getBriefOrDetailedSearch()) { $show_brief_or_detailed = $this->criteria_saver->getBriefOrDetailedSearch(); } else { $show_brief_or_detailed = 'detailed'; } $this->criteria_saver->setSessionForBriefOrDetailedSearch($show_brief_or_detailed); $requireApprove = SJB_ListingTypeManager::getWaitApproveSettingByListingType($this->listing_type_sid); if ($requireApprove) { $this->requested_data['status']['equal'] = 'approved'; } $this->requested_data['active']['equal'] = '1'; $this->criteria_saver->setSessionForCriteria(array_merge(array('active' => array('equal' => '1')), $this->criteria_saver->getCriteria(), $this->requested_data)); $this->found_listings_sids = $this->_getListingSidCollectionFromRequest(); $lpp = $this->criteria_saver->getListingsPerPage(); if (!empty($this->requested_data['default_listings_per_page']) && empty($lpp)) { $this->criteria_saver->setSessionForListingsPerPage(intval($this->requested_data['default_listings_per_page'])); } if (isset($this->requested_data['listings_per_page'])) { $this->criteria_saver->setSessionForListingsPerPage(intval($this->requested_data['listings_per_page'])); } $this->criteria_saver->setSessionForCurrentPage(1); if (isset($this->requested_data['page'])) { $this->criteria_saver->setSessionForCurrentPage($this->requested_data['page']); } $this->criteria_saver->setSessionForObjectSIDs($this->found_listings_sids); $this->listing_search_structure = $this->criteria_saver->createTemplateStructureForSearch(); if (empty($this->listing_search_structure['sorting_field'])) { $this->listing_search_structure['sorting_field'] = 'activation_date'; } try { SJB_Event::dispatch('beforeGenerateListingStructure', $this, true); } catch (Exception $e) { if (strpos($e->getMessage(), 'simplyHiredPlugin: Failed to read XML from url -') !== false) { $a = explode('- ', $e->getMessage()); $this->pluginErrors['SIMPLY_HIRED_XML_READ_FAILED'] = $a[1]; } } $listings_structure = array(); if ($this->listing_search_structure['listings_number'] > 0) { $currentUserSID = SJB_UserManager::getCurrentUserSID(); $isUserLoggedIn = SJB_UserManager::isUserLoggedIn(); $listings_structure = new SJB_Iterator(); if (!empty($this->requested_data['view']) && $this->requested_data['view'] == 'map') { $listings_structure->setView('map'); } $listings_structure->setListingsSids($this->getListingSidCollectionForCurrentPage()); $listings_structure->setListingTypeSID($this->listing_type_sid); $listings_structure->setCriteria($this->criteria_saver->criteria); $listings_structure->setUserLoggedIn($isUserLoggedIn); $listings_structure->setCurrentUserSID($currentUserSID); } SJB_Event::dispatch('afterGenerateListingStructure', $listings_structure, true); return $this->_getChargedTemplateProcessor($listings_structure); }