2011-07-04 4 views
1

私のブログでは、すべての投稿を日付DESCでソートしています。すべてのページングページには約15の投稿が含まれるようにページングを使用しています。また、右の列にはリンクがあります私はページネータ-ページへのこれらのリンクポイントのそれぞれがどこその特定の月の最初のポストであることを起こることを希望ブログアーカイブリストの問題

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

:私は、少なくとも記事を書いたか月間のすべてのための-list。 特定の月のpaginator-pageを指すhref属性をdinamicallyで見つける方法はありますか?

私の基本的なページは次のようになります。

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

:これは私が毎月リスト・アーカイブを取得するために使用するクエリがある

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;  
} 
} 

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..   
} 

そして、私のポストモデルそれが明確でない場合はお知らせください

おかげ

ルカ

答えて

0

私が正しくあなたを理解していればいけない知っているが、それはかなり簡単にする必要があります。

投稿を選択すると、その月の最初の投稿がすべて検索され、その位置が配列に保存されます。 あなたは表示する投稿の番号を知っているので、すべてのページに15の投稿があることを知っているので、必要なページを見つけやすいはずです。

関連する問題