博客存档列表问题

时间:2011-07-04 10:05:20

标签: php zend-framework post archive

在我的博客中,我的所有帖子按日期排序DESC.I使用分页器,以便每个分页器页面包含大约15个帖子。我还有一个右侧列,其中我有一个所有的链接列表我写了至少一篇文章的几个月:

ARCHIVES
 <a href="">january</a>
 <a href="">february</a>
 <a href="">march</a>
 [...]

我希望这些链接中的每一个都指向paginator-page,这恰好是该特定月份的第一篇帖子。如何找到指向特定月份paginator-page的href属性? /强>

我的基本页面是:

class IndexController extends Zend_Controller_Action
{
 public function indexAction()
 {
  $postmgr=new Post();
  $currentpage=1;
  $page=$this->_request->getParam('page');

  if(!empty($page))
  {
    $currentpage=$this->_request->getParam('page');
  }  
  $paginator=$postmgr->paginatePosts($currentpage);
  $this->view->paginator=$paginator;

  //then I build my monthly archive list..          
 }

我的帖子模型

class Post extends Zend_Db_Table_Abstract
{
    function paginatePosts($page=1)
 {
    $q=$this->select();
    $q->order('datetime DESC');

    $paginator=new Zend_Paginator(new Zend_Paginator_Adapter_DbTableSelect($q));
    $paginator->setItemCountPerPage(15);
    $paginator->setCurrentPageNumber($page);
    return $paginator;      
 }
}

这是我用来检索月度列表存档的查询:

SELECT COUNT(*), YEAR(datetime) AS year, MONTHNAME(datetime) AS month FROM
posts GROUP BY year, month ORDER BY year, MONTH(datetime)

如果不清楚,请告诉我

谢谢

卢卡

1 个答案:

答案 0 :(得分:0)

不知道我是否理解正确,但这应该很容易。

当您选择帖子时,查找当月的每个第一个帖子并将其位置存储在数组中。 您现在知道要显示的帖子的编号,并且您知道每个页面都有15个帖子,因此您应该很容易找到您需要的页面。