public function execute() { $uri = parse_url($_SERVER['REQUEST_URI']); if (!preg_match("/\\/\$/", $uri['path'])) { $uri = parse_url($_SERVER['REQUEST_URI']); $query = isset($uri['query']) ? '?' . $uri['query'] : ''; SJB_HelperFunctions::redirect($uri['path'] . '/' . $query); } else { $uri = SJB_Request::getVar('browseUrl', $this->getUri()); } $listingTypeId = SJB_Request::getVar('listing_type_id', ''); $browseManager = SJB_ObjectMother::createBrowseManager($listingTypeId, $this->parameters); $browseItems = array(); if ($browseManager->canBrowse()) { if (SJB_Settings::getValue('enableBrowseByCounter')) { $browseItems = $browseManager->getItemsFromDB($uri, true); } else { $browseItems = $browseManager->getItems($this->parameters, true); } } $tp = $this->getTemplateProcessor($browseManager, $listingTypeId); $tp->assign('browseItems', $browseItems); $tp->assign('recordsNumToDisplay', SJB_Request::getVar('recordsNumToDisplay', 20)); $tp->assign('user_page_uri', $uri); $tp->assign('sitePageUri', SJB_HelperFunctions::getSiteUrl() . $this->getUri()); $tp->assign('browse_level', $browseManager->getLevel() + 1); $tp->assign('browse_navigation_elements', $browseManager->getNavigationElements($uri)); $tp->display(SJB_Request::getVar('browse_template', 'browse_items_and_results.tpl')); }
/** * Search listing|listings which fits "browse" page parameters * @param array $page full parammeters of site page with function "browse" * @param bool $decorate false means return only array with values: * page /browse-by-occupations/ would return array('Bank Teller' = 14, 'Electrician' = 8...) * true means return ready html or processed values: * page /browse-by-occupations/ would return "<label><a href='/browse-by-occupations/334/Bank-Teller'>Bank Teller(349)</a>..." * @param array|int $listingSids if not empty search only among passed listing sids * @return array|string array with found values or ready html code */ private static function getItems($page, $decorate = false, array $listingSids = array()) { if (!SJB_Settings::getValue('enableBrowseByCounter')) { return array(); } $parameters = unserialize($page['parameters']); $browseManager = SJB_ObjectMother::createBrowseManager($parameters['listing_type_id'], $parameters); return $browseManager->getItems($parameters, $decorate, $listingSids); }