2011-07-04 46 views
1

在我的博客中,我有我的所有帖子按日期排序DESC.I使用paginator,以便每個paginator頁面包含大約15個posts.I也有一個右側列,我有一個鏈接-list的一切,我寫了一個至少後幾個月的:博客存檔列表問題

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) 

如果不清楚,請告知我

感謝

盧卡

回答

0

不知道如果我理解正確,但它應該是很容易的。

當您選擇您的帖子時,查找每月的第一篇文章並將其位置存儲在數組中。 你現在知道你想要顯示的帖子的數量,並且你知道每個頁面有15個帖子,所以應該很容易找出你需要的頁面。