Beispiel #1
0
 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);
 }