Skip to content

Instantly share code, notes, and snippets.

@gomasaba
Created August 7, 2011 14:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gomasaba/1130409 to your computer and use it in GitHub Desktop.
Save gomasaba/1130409 to your computer and use it in GitHub Desktop.
Codeigniter2.0.1でpaginationをpagerにしてみるメモ
<?php
require_once 'Pager.php';
class MY_Pagination{
var $params = array(
'mode' => 'sliding',
'perPage' => 10,
'delta' => 4,//現在のページの前後に表示するページ番号の数
'separator' => '',
'curPageLinkClassName' => 'current',
'prevImg' => '&#171; 前へ',
'nextImg' => '次へ &#187;',
'totalItems' => 0,//ページ付けするアイテムの数を指定
'urlVar' =>'page',
'path' =>'',
'append' => true,
'fileName' => '',
'fixFileName' =>false,
'importQuery' =>false,
'extraVars' =>array(),
);
function get_page_num()
{
parse_str($_SERVER['QUERY_STRING'],$get);
if(array_key_exists('page', $get)){
$num = intval($get['page']);
//or
// $Security = new CI_Security();
// $num = $Security->xss_clean($page['page']);
}else{
$num = 1;
}
return $num;
}
/**
* Initialize Preferences
*
* @access public
* @param array initialization parameters
* @return void
*/
function initialize($params = array())
{
if(!array_key_exists('path', $params)){
$this->params['path'] = base_url();
}
if(!array_key_exists('fileName', $params)){
$this->params['fileName'] = uri_string();
}
$this->params = $params + $this->params;
}
function create_links()
{
$pager = Pager::factory($this->params);
$links = $pager->getLinks();
$page_range = $pager->getPageRangeByPageId();
$page_range = range($page_range[0], $page_range[1]);
$link = '';
if ($links['pages'] != '') {
// 前のページ
if ($links['back'] != '') {
// クラスを付ける
$link .= str_replace('<a href','<a class="nextprev" href', $links['back']);
} else {
$link .= '<span class="nextprev">'.$pager->getOption('prevImg').'</span>';
}
// 最初のページ
if ($links['first'] != '' && !in_array(1, $page_range)) {
$link .= $links['first'].'<span>....</span>';
}
// ページ
$link .= $links['pages'];
// 最後のページ
if ($links['last'] != '' && !in_array($pager->numPages(), $page_range)) {
$link .= '<span>....</span>'.$links['last'];
}
// 次のページ
if ($links['next'] != '') {
// クラスを付ける
$link .= str_replace('<a href', '<a class="nextprev" href', $links['next']);
} else {
$link .= '<span class="nextprev">'.$pager->getOption('nextImg').'</span>';
}
}
return str_replace('&nbsp;','',$link);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment