BLOG > GENERAL

ProcessWireでのページネーション


ProcessWireはページ分割のソースを書き出すのも非常に簡単で、以下の様にすればいいだけである。
$pages->find( )のところはparent_id(親ページのID)がこのページのIDと同一のコンテンツを、日付ソートでという内容で、start、limitはそのままSQLのクエリとなる。

ページネーションの記述


$results = $pages->find("parent_id=$page->id, limit=$limit, start=$start, sort=-date");
$pagination = $results->renderPager();
echo $pagination;



これで以下の様なページ分割のソースが書き出される。

ページネーションのHTML





肝心のコンテンツの表示については以下の様にしておけばよい。
テンプレートの記載


$start = $input->pageNum;
$limit = 3;
if($input->pageNum) $start = $limit * ($start-1);

$poses = $pages->find("parent_id=$page->id, start=$start, limit=$limit, sort=-date");
foreach($poses as $pos) {
echo "
";
echo "{$pos->title}";
echo "$pos->body";
echo "
";
}
echo "
"



ここで理解が進むまで時間がかかってしまったのが、ProcessWireでのページネーションのサンプルのURLが/page2/のようになっており、デフォルトの?page=2とことなるということ。
サンプルではページナンバーを$input->pageNumで読み込むことになっているが、なぜか$input->pageNumに1しか入らないので、はじめは$input->get->pageとしてURLのデータを取り込んで処理していた。(ProcessWireでは$input->get->nameの様にすればGET、POSTいずれも取り込むことが出来る。)
ProcessWireでのページネーションのサンプルのURLのように/page2/とするには、利用するテンプレートのURLSのところを開きAllow Page Numbers?にチェックを入れるとURL記述が変更され、同時にサンプルと同様にページナンバーを$input->pageNumで読み込むことができるようになる。このチェックを入れないと$input->pageNumは常に1のままとなるので注意が必要。

processwireはmodxと同じく階層型のCMSとなるが、あらゆるところでmodxに比べて素直で感覚的、視覚的に扱いやすい。evoだかrevoだかもうわけわかんねーなと思った人にはprocesswireは素直にお勧めする。またこれまでのCMSであるwordpressやnucleusなどのように、カテゴリーというコンテンツの体系的な縛りがないので、欲しいデータを欲しい所で簡潔な記述で読み込めるのがよい。



LINEで送る
PREV : キズパワーパッドやクイックパッドの使用上の注意
NEXT : ワールドWaveトゥナイトの鎌倉千秋と黒木奈々の立ち位置が微妙

あまちゃんの海女カフェのレポーターが山岸舞彩に変わった


能年玲奈、小泉今日子らの出演するNHKの朝の連続テレビ小説あまちゃんの海女カフェのリポーター役は原史奈がやってたけど、山岸舞彩に変わってた。 原史奈でよかったんじゃないかと思うが、山岸舞彩が諸々の事...つづきはこちら