検索結果一覧の検索結果数を調整したい

2014年8月2日 at 13:21

いつもお世話になっております。

検索ブロックにてページ属性を検索し、その結果を検索結果一覧ページで表示させています。

何も設定していないデフォルトの状態ですと、検索結果はページ毎20項目表示され、それ以上は改ページされるようなのですが、この検索結果数の調節はどこで行うのでしょうか。

書籍やフォーラムをひと通り探してみたのですが、見つけられませんでした。

アドバイス頂ければ幸いです。

よろしくお願いします。

タグ:

Re: 検索結果一覧の検索結果数を調整したい

2014年8月4日 at 10:34
検索ブロックには、件数を設定するオプションが設定されていません。このような場合、書籍で解説しているようなテンプレート(view.php)のカスタマイズだけでは対応できず、コントローラー(controller.php)のカスタマイズが必要になります。

コントローラーのカスタマイズを行なうには、コア領域の
concrete/blocks/search/controller.php
をユーザー領域の
blocks/search/controller.php
にコピーして行ないます。

件数を変更したカスタマイズのサンプルをこちらのURLに置いておきましたので参考にしてください。
http://gist.github.com/hissy/aace4f9ce59f46115971

検索ブロックでは IndexedPageList クラスを使用して検索を行なっていますが、このクラスのメソッドに setItemsPerPage() という表示件数を設定するものがありますので、これで変更が可能です。
 

Re: 検索結果一覧の検索結果数を調整したい

2014年8月4日 at 11:04
hissyさん、いつもありがとうございます!

実現できました。ありがとうございました。

ただ、ユーザー領域にコピーして行ったカスタマイズでは変化せず、
concrete/blocks/search/controller.php
をバックアップを取った上で直接編集したら、動きました。

やはり、カスタマイズはユーザー領域で行ったほうがいいのでしょうか。
 

Re: 検索結果一覧の検索結果数を調整したい

2014年8月4日 at 11:09
ユーザー領域に置いたファイルがすぐに反映されないのは、オーバーライドキャッシュが関係しています。キャッシュのクリアを行なってみてください。
 

Re: 検索結果一覧の検索結果数を調整したい

2014年8月4日 at 11:26
hissyさん、ありがとうございます。

キャッシュのクリアで正常に動きました。
これからは変更後はキャッシュのクリアも念頭に置きます。

勉強になりました。ありがとうございました。

これからもどうぞよろしくお願いします!