Wolf CMSのページネーションが動かない

Wolf CMSの初期設定では、記事の一覧は1ページにすべて表示されます。
あまり情報量が多いと非常にみにくいページになってしまうので、
ページネーションを利用したいと思います。

ただ、ドキュメント通りに設定するだけでは、
例のごとくPostgreSQLでは戻り値が0になってしまうので、
wolf/app/models/Page.phpのchildrenCountメソッドを修正します。

public function childrenCount($args=null, $value=array(), $include_hidden=false) {
        // ...

        // Prepare SQL
        $sql = 'SELECT COUNT(*) AS nb_rows FROM '.TABLE_PREFIX.'page '
                .'WHERE parent_id = '.$this->id
                ." AND (COALESCE(valid_until, '') = '' OR '".date('Y-m-d H:i:s')."' < valid_until)"
                .' AND (status_id='.Page::STATUS_PUBLISHED
                .($include_hidden ? ' OR status_id='.Page::STATUS_HIDDEN : '').') '
                ."$where_string ORDER BY $order $limit_string $offset_string";

        // ...
}

上記部分を下記のように修正します。

public function childrenCount($args=null, $value=array(), $include_hidden=false) {
        // ...

        // Prepare SQL
        $sql = 'SELECT COUNT(*) AS nb_rows FROM '.TABLE_PREFIX.'page '
                .'WHERE parent_id = '.$this->id
        //      ." AND (COALESCE(valid_until, '') = '' OR '".date('Y-m-d H:i:s')."' < valid_until)"
                .' AND (status_id='.Page::STATUS_PUBLISHED
                .($include_hidden ? ' OR status_id='.Page::STATUS_HIDDEN : '').') ';
        //      ."$where_string ORDER BY $order $limit_string $offset_string";

        // ...
}

children関数のSQL文と同様にコメントアウトする必要があるようですね。

ただ、この修正方法をいつだか公式フォーラムでみたのですが、
今探してみたらみつかりませんでした :'<


投稿日

カテゴリー:

投稿者:

タグ: