【问题标题】:Blog Archive-list issue博客存档列表问题
【发布时间】:2011-07-04 10:05:20
【问题描述】:

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

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

我希望这些链接中的每一个都指向恰好是该特定月份的第一篇文章的分页器页面。我怎样才能找到指向特定月份分页器页面的 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)

如果不清楚请告诉我

谢谢

卢卡

【问题讨论】:

    标签: php zend-framework post archive


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多