Closed ucym closed 9 years ago
ページネーションの実装にかかるコードが削減されます。
<?php require 'd5/bs.php'; define('ITEMS_PER_PAGE', 30); $current_page = $_GET['page']; $result = DB::query('SELECT COUNT(*) AS `count` FROM `users`')->fetch(); $all_count = $result['count']; // Pager 初期化 Pager::init($current_page, $all_count, ITEMS_PER_PAGE); ?> <!-- Example 1 --> <ul class="pager"> <?php Pager::hasPrev('<li class="pager__page pager__page-prev"><a href="search.php?page=:page"><< 戻る</a></li>') ?> <?php Pager::relateRange(5, '<li class="pager__page"><a href="search.php?page=:page"></li>') ?> <?php Pager::hasNext('<li class="pager__page pager__page-next"><a href="search.php?page=:page">次へ>></a></li>') ?> <!--- Example 2 --> あるいは以下の書き方もできる <?php if (Pager::hasPrev()) : ?> <li class="pager__page pager__page-prev"> <a href="search.php?page=:page"><< 戻る</a> </li> <?php end if; ?> <?php foreach (Pager::relateRange(5) as $page) : ?> <li class="pager__page"><a href="search.php?page=<?php echo $page ?>"></li> <?php end foreach; ?> <?php if (Pager::hasNext()) : ?> <li class="pager__page pager__page-next"> <a href="search.php?page=:page">次へ>></a> </li> <?php end if; ?> -->
Pager::init($currentPage, $allCount, $perPage) : void ページャーを初期化します。 $currentPage は現在いるページ番号を"0から"の値で指定します。 $allCount は表示できるアイテムが全部で何件あるかを指定します。 $perPage は1ページに表示するアイテムの件数を指定します。
Pager::hasPrev($content = null) : bool 前のページが存在するかを true / false で表す。 $content が指定された時、 前のページが存在すれば $contentを表示します。 その際、$content内の":page"を前のページのページ番号に置き換えます。
Pager::hasNext($content = null) : bool 次のページが存在するかを true / falseで表します。 その他の動作は ::hasPrevに準じます。
Pager::relateRange($before_after, $content = null) : array 今いるページの前後 $before_after ページの範囲の配列を返します。 現在のページが 2、 $before_afterに 5を指定した時 array(0, 1, 2, 3, 4, 5, 6 ,7)を返します。 $content が指定された時、$content内の":page"を処理中のページ番号に置き換えながら表示します。
Benefit
ページネーションの実装にかかるコードが削減されます。
Feature
Ideal code sample
Description