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