public function paginate($page, $limit = 10)
 {
   $pager = new sfLucenePager($this->_model, $this->_queryString, $limit);
   $pager->setPage($page);
   $pager->init();
   return $pager;
 }
Пример #2
0
 public function executeSearch()
 {
     $feed = new sfAtom1Feed();
     $feed->setTitle('Hoydaa Snippets');
     $feed->setLink('http://codesnippet.hoydaa.org');
     $feed->setAuthorEmail('*****@*****.**');
     $feed->setAuthorName('Hoydaa Snippets');
     $querystring = $this->getRequestParameter('q');
     $query = new sfLuceneCriteria($this->getLuceneInstance());
     $query->addDescendingSortBy('createdat');
     $query->addSane($querystring);
     $pager = new sfLucenePager($this->getLuceneInstance()->friendlyFind($query));
     $num = $pager->getNbResults();
     if ($num > 0) {
         $pager->setMaxPerPage(10);
         $pager->setPage(1);
         foreach ($pager->getResults() as $result) {
             $item = new sfFeedItem();
             $item->setTitle($result->getTitle());
             $item->setLink('snippet/show?id=' . $result->getId());
             $item->setAuthorName($result->getContributor());
             $item->setPubDate(strtotime($result->getCreatedAt()));
             //$item->setAuthorEmail(($code->getSfGuardUser() ?
             //	$code->getSfGuardUser()->getProfile()->getEmail() : $code->getEmail()));
             $item->setUniqueId($result->getId());
             $item->setDescription($result->getSummary());
             $feed->addItem($item);
         }
     }
     $this->feed = $feed;
     $this->setTemplate('feed');
 }
 /**
  * Executes the search action.  If there is a search query present in the request
  * parameters, then a search is executed and uses a paged result.  If not, then
  * the search box is displayed to prompt the user to enter controls.
  */
 public function executeSearch($request)
 {
     // determine if the user pressed the "Advanced"  button
     if ($request->getParameter('commit') == $this->translate('Advanced')) {
         // user did, so redirect to advanced search
         $this->redirect($this->getModuleName() . '/advanced');
     }
     $form = new sfLuceneSimpleForm();
     $this->configureCategories($form);
     $form->bind($request->getParameter($form->getName(), array()));
     $this->form = $form;
     if (!$form->isValid()) {
         // display search controls
         $this->setTitleI18n('Search');
         $this->setTemplate('searchControls');
     }
     $values = $form->getValues();
     if (count($values) == 0) {
         // display error
         $this->setTitleI18n('No Results Found');
         $this->setTemplate('searchNoResults');
         return sfView::SUCCESS;
     }
     // build the criteria
     $query = new sfLuceneCriteria();
     $query->addSane($values['query']);
     if (sfConfig::get('app_lucene_categories', true) && isset($values['category']) && $values['category'] != $this->translate('All')) {
         $query->add('sfl_category: ' . $values['category']);
     }
     $pager = new sfLucenePager($this->getLuceneInstance()->friendlyFind($query));
     // were any results returned?
     if ($pager->getNbResults() == 0) {
         // display error
         $this->setTitleI18n('No Results Found');
         $this->setTemplate('searchNoResults');
         return sfView::SUCCESS;
     }
     // display results
     $pager = $this->configurePager($pager, $form);
     $this->pager = $pager;
     $this->query = $values['query'];
     $this->setTitleNumResults($pager);
     $this->setTemplate('searchResults');
 }
    $t->pass('__construct() rejects a non-array');
}
try {
    new sfLucenePager(new sfLuceneResults(array(), $lucene));
    $t->pass('__construct() accepts sfLuceneResults');
} catch (Exception $e) {
    $t->fail('__construct() accepts sfLuceneResults');
}
try {
    new sfLucenePager(array(), null);
    $t->fail('__construct() must have a search instance');
} catch (Exception $e) {
    $t->pass('__construct() must have a search instance');
}
try {
    $results = new sfLucenePager(range(0, 1000), $lucene);
    $t->pass('__construct() accepts an array');
} catch (Exception $e) {
    $t->fail('__construct() accepts an array');
}
$t->diag('testing basic pagination functions');
try {
    $results->setPage(2);
    $t->pass('->setPage() accepts a integer page');
} catch (Exception $e) {
    $t->fail('->setPage() accepts a integer page');
}
try {
    $results->setMaxPerPage(10);
    $t->pass('->setMaxPerPage() accepts an integer per page');
} catch (Exception $e) {