Yellowed pages from a dictionary / Horia Varlan
FuelPHPのページネーションクラスをさわっている時にふと気になったので検証がてらメモ。
ページネーションの基本的な使い方はすっ飛ばして、ページネーション設定をconfigファイルにまとめれないかな、とCodeIgniter移行組である私は思ったわけです。
ページネーション、いわゆる改ページ
via Google
これですね。
参考:CodeIgniter ユーザガイド 日本語版 Version 2.0.3 | 設定ファイルで設定する
こんなことしたいな、と。
いきなり結論
できました。おしまい。
では味気ないのでやったところをメモします。
実践
core/classes/pagination.php を見てみたらバッチリ書いてありました。
(※FuelPHP V1.2)
public static function _init() { \Config::load('pagination', true); // ここロードしてます $config = \Config::get('pagination', array()); static::set_config($config); } |
FuelPHPではPackageやCore内に配置されているconfigファイルを app/config 以下に複製してオーバーライドさせる、と認識しています。その流れにのっとって core/config 内を確認しましたがpagination.phpなんてファイルはありませんでした。
ので app/config/ に新規作成!
$ vi fuel/app/config/pagination.php |
公式ドキュメントより、pagination_urlパラメータ以外のページネーション設定を追記します。
※設定は適当です。
<!--?php return array( 'total_items' =-->100, 'uri_segment' => 3, 'num_links' => 5, 'per_page' => 5, 'template' => array( 'wrapper_start' => ' |
' |
実際にページネーションを使用するコントローラ内では、動的なpagination_urlパラメータのみを設定し、ページネーションを生成します。
$pagination_config = array( 'pagination_url' => \Uri::string(), ); \Pagination::set_config($pagination_config); |
ビュー側でページネーションを表示してやると、無事設定ファイル内の状態で表示されました。やったね☆
<!--?php echo \Pagination::create_links(); --> |
まとめ
今回はFuelPHPドキュメントや、先日購入した書籍にも特に情報が見つけられなかったので記事にしてみました。ページネーションにはURLや項目数など動的な値が入るので基本的には共通設定は少ないかもしれません。
が、見た目を担うtemplate部分など大きな変更がない項目はまとめてしまった方が便利ですよね。
ですよね?と自分に言い聞かせ..あまりに情報がなかったのでみんな気にしてないのかと思ったんだぜ。
おまけ:「次へ」とか「前へ」とか使いたい!
デフォルトは「Previous」「Next」となっていますが、やはりここは日本語が優しい。
もちろん表示文字列も変更できます。
ただ、言葉に関することなので設定ファイルではなく言語ファイルに設定します。
fuel/core/lang/en/pagination.php
ファイルを
fuel/app/lang/ja/pagination.php
に複製します。
あとはお好きなセリフでいざなってあげてください。
