分頁(yè)類
CodeIgniter 的分頁(yè)類是一個(gè)非常簡(jiǎn)單,并且 100% 用戶自定義的類。
分頁(yè)類允許你通過提交鏈接從一個(gè)頁(yè)面導(dǎo)航至另一個(gè)頁(yè)面,如下:
? First??<?1?2?3?4?5?>??Last ?
例子
這里有一個(gè)例子展示了如何在你的控制器里創(chuàng)建一個(gè)分頁(yè):
$this->load->library('pagination');
$config['base_url'] = 'http://example.com/index.php/test/page/';
$config['total_rows'] = 200;
$config['per_page'] = 20;
$this->pagination->initialize($config);
echo $this->pagination->create_links();
提示:
$config 數(shù)組包含了你的配置參數(shù)。這些參數(shù)被 $this->pagination->initialize 方法傳遞,如上面的例子所展示。以下是對(duì)這些項(xiàng)目的描述:
- base_url 這是一個(gè)完整的 URL 路徑通向包含你的分頁(yè)控制器類/方法。在上面的這個(gè)例子里,它指向了一個(gè)叫“Test”的控制器和它的一個(gè)方法叫“Page”。 記住,你可以重新路由你的 URI,如果你需要一個(gè)不同的結(jié)構(gòu)。
- total_rows 這個(gè)數(shù)字展示了你需要做分頁(yè)的數(shù)據(jù)總行數(shù)。這個(gè)數(shù)值是你查詢數(shù)據(jù)庫(kù)得到的數(shù)據(jù)總量。
- per_page 這個(gè)數(shù)字計(jì)劃了你每個(gè)頁(yè)面中希望展示的項(xiàng)目數(shù)量,在上面的那個(gè)例子中,你可以得到每頁(yè)顯示 20 個(gè)項(xiàng)目。
當(dāng)你沒有分頁(yè)需要顯示時(shí),create_links() 方法會(huì)返回一個(gè)空的字符串。
在配置文件中設(shè)置參數(shù)
如果你不喜歡用以上的方法設(shè)定你的喜歡,你可以用簡(jiǎn)單的創(chuàng)建一個(gè)新的文件叫做 pagination.php,把 $config 數(shù)組加到這個(gè)文件中。把文件保存至 config/pagination.php 可以讓它被自動(dòng)使用。用這個(gè)方法,你不在需要使用 $this->pagination->initialize 方法。
自定義分頁(yè)
下面是一個(gè)參數(shù)列表,你可以通過初始化方法來定制你喜歡的顯示效果。
$config['uri_segment'] = 3;
分頁(yè)方法自動(dòng)測(cè)定你 URI 的哪個(gè)部分包含頁(yè)數(shù)。如果你需要一些不一樣的,你可以明確指定它。
$config['num_links'] = 2;
放在你當(dāng)前頁(yè)碼的前面和后面的“數(shù)字”鏈接的數(shù)量。比方說值為 2 就會(huì)在每一邊放置 2 個(gè)數(shù)字鏈接,就像此頁(yè)頂端的示例鏈接那樣。
$config['use_page_numbers'] = TRUE;
默認(rèn)分頁(yè)URL中是顯示每頁(yè)記錄數(shù),啟用use_page_numbers后顯示的是當(dāng)前頁(yè)碼,如下:
不啟用:http://example.com/index.php/test/page/20
啟用后:http://example.com/index.php/test/page/1
$config['page_query_string'] = TRUE
默認(rèn)情況下,分頁(yè)類庫(kù)假設(shè)你使用 URI 段,并像這樣構(gòu)造你的鏈接:
http://example.com/index.php/test/page/20
如果你把 $config['enable_query_strings'] 設(shè)置為 TRUE,你的鏈接將自動(dòng)地被用查詢字符串重寫。這個(gè)選項(xiàng)也可以被明確地設(shè)置。把 $config['page_query_string'] 設(shè)置為 TRUE,分頁(yè)鏈接將變成:
http://example.com/index.php?c=test&m=page&per_page=20
請(qǐng)注意,“per_page”是默認(rèn)傳遞的查詢字符串,但也可以使用 $config['query_string_segment'] = '你的字符串' 來配置。
添加封裝標(biāo)簽
如果你希望在整個(gè)分頁(yè)周圍圍繞一些標(biāo)簽,你可以通過下面的兩種方法:
$config['full_tag_open'] = '<p>';
把打開的標(biāo)簽放在所有結(jié)果的左側(cè)。
$config['full_tag_close'] = '</p>';
把關(guān)閉的標(biāo)簽放在所有結(jié)果的右側(cè)。
自定義起始鏈接
$config['first_link'] = 'First';
你希望在分頁(yè)的左邊顯示“第一頁(yè)”鏈接的名字。如果你不希望顯示,可以把它的值設(shè)為 FALSE 。
$config['first_tag_open'] = '<div>';
“第一頁(yè)”鏈接的打開標(biāo)簽。
$config['first_tag_close'] = '</div>';
“第一頁(yè)”鏈接的關(guān)閉標(biāo)簽。
自定義結(jié)束鏈接
$config['last_link'] = 'Last';
你希望在分頁(yè)的右邊顯示“最后一頁(yè)”鏈接的名字。如果你不希望顯示,可以把它的值設(shè)為 FALSE 。
$config['last_tag_open'] = '<div>';
“最后一頁(yè)”鏈接的打開標(biāo)簽。
$config['last_tag_close'] = '</div>';
“最后一頁(yè)”鏈接的關(guān)閉標(biāo)簽。
自定義“下一頁(yè)”鏈接
$config['next_link'] = '>';
你希望在分頁(yè)中顯示“下一頁(yè)”鏈接的名字。如果你不希望顯示,可以把它的值設(shè)為 FALSE 。
$config['next_tag_open'] = '<div>';
“下一頁(yè)”鏈接的打開標(biāo)簽。
$config['next_tag_close'] = '</div>';
“下一頁(yè)”鏈接的關(guān)閉標(biāo)簽。
自定義“上一頁(yè)”鏈接
$config['prev_link'] = '<';
你希望在分頁(yè)中顯示“上一頁(yè)”鏈接的名字。如果你不希望顯示,可以把它的值設(shè)為 FALSE 。
$config['prev_tag_open'] = '<div>';
“上一頁(yè)”鏈接的打開標(biāo)簽。
$config['prev_tag_close'] = '</div>';
“上一頁(yè)”鏈接的關(guān)閉標(biāo)簽。
自定義“當(dāng)前頁(yè)”鏈接
$config['cur_tag_open'] = '<b>';
“當(dāng)前頁(yè)”鏈接的打開標(biāo)簽。
$config['cur_tag_close'] = '</b>';
“當(dāng)前頁(yè)”鏈接的關(guān)閉標(biāo)簽。
自定義“數(shù)字”鏈接
$config['num_tag_open'] = '<div>';
“數(shù)字”鏈接的打開標(biāo)簽。
$config['num_tag_close'] = '</div>';
“數(shù)字”鏈接的關(guān)閉標(biāo)簽。
隱藏“數(shù)字”鏈接
如果你不想顯示“數(shù)字”鏈接(比如只顯示 “上一頁(yè)” 和 “下一頁(yè)”鏈接)你可以添加如下配置:
$config['display_pages'] = FALSE;
// 不顯示“數(shù)字”鏈接
給鏈接添加 CSS 類
如果你想要給每一個(gè)鏈接添加 CSS 類,你可以添加如下配置:
$config['anchor_class'] = "";
//添加 CSS 類
?