在这搜索结果分页中,使用本站开发的分页类,如有兴趣请看:发布一个自由处理分页的Joomla!类
使用这个类,其实搜索结果分页非常简单,大体代码如下:
$limitstart = JRequest::getVar('start', 0, '', 'int');
$limit =10;
$pagination = null;
JRequest::setVar('limit', (int) $limit); $items = array();
$searchword = JRequest::getVar('searchword');
if(! empty($searchword)) {
Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Phpbean_Lucene_Analyzer());
$index = new Zend_Search_Lucene('/tmp/search');
$Query = Zend_Search_Lucene_Search_QueryParser::parse($searchword,'utf-8');
$hits = $index->find($Query);
$total = count($hits);
$pagination = new JPagebar($total, $limitstart, $limit);
$i = 0;
foreach ($hits as $hit) {
if($i>=$limitstart && $i<$limitstart+$limit){
$items[$i]->title=JString::str_ireplace($searchword,'<font color="CC0033">'.$searchword."</font>",$hit->title);
$items[$i]->content=JString::str_ireplace($searchword,'<font color="CC0033">'.$searchword."</font>",JString::substr($hit->content,0,200));
$items[$i]->href=JRoute::_(ContentHelperRoute::getArticleRoute($hit->slug, $hit->catslug, $hit->sectionid));
}
$i++;
}
}
我们看到第一部分代码主要是组织一些初始参数,$total = count($hits); 取得了记录总数,就可以生成分页对象了:
$pagination = new JPagebar($total, $limitstart, $limit);
将这个对象传递给模板文件,在模板文件中:
<?php echo $this->pagination->getPagesLinks( ); ?>
这样就实现了搜索结果的分页。