protected function getResults($ssid, $template) { $results = array(); /* case some plugin overwrites this method */ Sobi::Trigger('GetResults', 'Search', array(&$results, &$ssid, &$template)); if (count($results)) { return $results; } /* get limits - if defined in template config - otherwise from the section config */ $eLimit = $this->tKey($template, 'entries_limit', Sobi::Cfg('search.entries_limit', Sobi::Cfg('list.entries_limit', 2))); $eInLine = $this->tKey($template, 'entries_in_line', Sobi::Cfg('search.entries_in_line', Sobi::Cfg('list.entries_in_line', 2))); /* get the site to display */ $site = SPRequest::int('site', 1); $eLimStart = ($site - 1) * $eLimit; try { $this->_db->select(array('entriesResults', 'requestData'), 'spdb_search', array('ssid' => $ssid)); $r = $this->_db->loadAssocList(); if (strlen($r[0]['entriesResults'])) { $store = SPConfig::unserialize($r[0]['entriesResults']); if ($store['results']) { $this->_results = array_unique(explode(',', $store['results'])); $this->_resultsByPriority = $store['resultsByPriority']; } $this->_resultsCount = count($this->_results); } $this->_request = SPConfig::unserialize($r[0]['requestData']); SPFactory::registry()->set('requestcache', $this->_request); if (count($this->_results)) { $r = array_slice($this->_results, $eLimStart, $eLimit); /* so we have a results */ foreach ($r as $i => $sid) { $results[$i] = (int) $sid; //$results[ $i ] = new $eClass(); //$results[ $i ]->init( $sid ); } } } catch (SPException $x) { Sobi::Error($this->name(), SPLang::e('CANNOT_GET_SESSION_DB_ERR', $x->getMessage()), SPC::ERROR, 500, __LINE__, __FILE__); } Sobi::SetUserData('currently-displayed-entries', $results); return $results; }