Example #1
0
 /**
  * Get predb rows by limit and filter.
  */
 public function getPreRange($start = 0, $num, $dirname = '', $category = '')
 {
     // Only use Sphinx if this is a search request
     if ($dirname) {
         if ($this->pdo->getSetting('sphinxenabled') && $this->pdo->getSetting('sphinxindexpredb')) {
             // Search using Sphinx
             $sphinx = new Sphinx();
             $results = $sphinx->getPreRange($start, $num, $dirname, $category);
             if (is_array($results)) {
                 return $results;
             }
         }
     }
     $dirname = str_replace(' ', '%', $dirname);
     $dirname = empty($dirname) ? '' : sprintf('WHERE dirname LIKE %s', $this->pdo->escapeString('%' . $dirname . '%'));
     $category = empty($category) ? '' : sprintf((empty($dirname) ? 'WHERE' : ' AND') . " category = %s", $this->pdo->escapeString($category));
     $sql = sprintf('SELECT p.*, r.guid FROM predb p left outer join releases r on p.id = r.preid %s %s ORDER BY ctime DESC LIMIT %d,%d', $dirname, $category, $start, $num);
     return $this->pdo->query($sql, true);
 }