phpcms分页函数在哪里改
phpcms是一款流行的PHP开源CMS系统,提供了强大的后台管理和前台展示功能。在开发和使用中,我们常常会遇到分页的需求,而phpcms也提供了预设的分页函数,在需要时可以直接调用。如果需要对分页函数进行自定义和修改,可以按照以下步骤进行操作。
1.找到分页函数所在文件
phpcms的分页函数位于/applications/classes下的page.class.php文件中。打开该文件可以找到分页函数的定义和实现。
2.了解分页函数的参数和返回值
在分页函数的定义中,通常会包含一些参数和返回值。了解这些参数和返回值可以更好地理解和修改分页函数。
常见的分页函数参数包括:
$page:当前页码数。
$total_pages:总页数。
$page_url:分页链接,即点击分页链接后跳转的地址。
$pagestyle:分页样式,可指定为数字、simple、full或者是一段HTML代码。
$show_first_last:是否显示首页和尾页链接,可以指定为true或false。
$show_totalnum:是否显示总页数,可以指定为true或false。
常见的分页函数返回值包括:
//返回全部分页数据
array('pre_page'=>上一页链接, 'next_page'=>下一页链接, 'pre_bar'=>上一分页块链接, 'next_bar'=>下一分页块链接, 'first_page'=>首页链接, 'last_page'=>尾页链接, 'all_pages'=>全部分页的HTML代码)
//返回纯HTML分页数据
string
3.修改分页函数实现
修改分页函数,就是在函数体中对参数的处理和数据的获取进行修改。具体的修改方式可以根据开发需求而定,下面介绍一些常用的修改方式。
修改分页样式
默认的分页样式是数字样式,如果需要自定义分页样式,可以将$pagestyle参数设置为自定义样式的CSS代码。
例如,如果需要将分页链接放在一个ul标签中,并使用bootstrap样式,可以修改分页函数如下:
public static function pc_lists_page($page, $total_pages, $page_url, $pagestyle = '1', $show_first_last = true, $show_totalnum = true) {
$pageres = array();
if ($total_pages > 1) {
$pre_page = $page - 1;
$next_page = $page + 1;
$pre_bar = $next_bar = '';
$listnum = 10;
$total_list = $listnum * 2 + 1;
if ($total_pages <= $total_list) {
$from = 1;
$to = $total_pages;
} else {
$from = $page - $listnum;
$to = $page + $listnum;
if ($from < 1) {
$to = $page + $listnum - $from;
$from = 1;
$to > $total_pages && $to = $total_pages;
} elseif ($to > $total_pages) {
$from = $page - $listnum - ($to - $total_pages);
$to = $total_pages;
$from < 1 && $from = 1;
}
}
if ($pre_page >= 1) {
$pageres['pre_page'] = '<li><a href="' . str_replace('__PAGE__', $pre_page, $page_url) . '">上一页</a></li>';
} else {
$pageres['pre_page'] = '<li class="disabled"><a href="#">上一页</a></li>';
}
if ($next_page <= $total_pages) {
$pageres['next_page'] = '<li><a href="' . str_replace('__PAGE__', $next_page, $page_url) . '">下一页</a></li>';
} else {
$pageres['next_page'] = '<li class="disabled"><a href="#">下一页</a></li>';
}
if ($page > $listnum + 1) {
$pageres['first_page'] = '<li><a href="' . str_replace('__PAGE__', 1, $page_url) . '">首页</a></li>';
}
if ($page < $total_pages - $listnum) {
$pageres['last_page'] = '<li><a href="' . str_replace('__PAGE__', $total_pages, $page_url) . '">尾页</a></li>';
}
if ($from > 1) {
$pre_bar = '<li class="disabled"><a href="#">...</a></li>';
}
if ($to < $total_pages) {
$next_bar = '<li class="disabled"><a href="#">...</a></li>';
}
$page_str = '';
for ($i = $from; $i <= $to; $i++) {
if ($i == $page) {
$page_str .= '<li class="active"><a href="#">' . $i . '</a></li>';
} else {
$page_str .= '<li><a href="' . str_replace('__PAGE__', $i, $page_url) . '">' . $i . '</a></li>';
}
}
$pageres['pager'] = '<ul class="pagination">' . $pageres['first_page'] . $pageres['pre_page'] . $pre_bar . $page_str . $next_bar . $pageres['next_page'] . $pageres['last_page'] . '</ul>';
}
return $pageres;
}
修改分页链接格式
默认的分页链接格式为:“原链接?%i”,其中%i表示页码数。如果需要自定义分页链接格式,也可以对$page_url进行修改。
例如,如果需要将分页链接改为“原链接#page-%i”,可以修改分页函数如下:
public static function pc_lists_page($page, $total_pages, $page_url, $pagestyle = '1', $show_first_last = true, $show_totalnum = true) {
$pageres = array();
if ($total_pages > 1) {
$pre_page = $page - 1;
$next_page = $page + 1;
$pre_bar = $next_bar = '';
$listnum = 10;
$total_list = $listnum * 2 + 1;
if ($total_pages <= $total_list) {
$from = 1;
$to = $total_pages;
} else {
$from = $page - $listnum;
$to = $page + $listnum;
if ($from < 1) {
$to = $page + $listnum - $from;
$from = 1;
$to > $total_pages && $to = $total_pages;
} elseif ($to > $total_pages) {
$from = $page - $listnum - ($to - $total_pages);
$to = $total_pages;
$from < 1 && $from = 1;
}
}
if ($pre_page >= 1) {
$pageres['pre_page'] = str_replace('%i', $pre_page, $page_url);
} else {
$pageres['pre_page'] = '#';
}
if ($next_page <= $total_pages) {
$pageres['next_page'] = str_replace('%i', $next_page, $page_url);
} else {
$pageres['next_page'] = '#';
}
if ($page > $listnum + 1) {
$pageres['first_page'] = str_replace('%i', 1, $page_url);
}
if ($page < $total_pages - $listnum) {
$pageres['last_page'] = str_replace('%i', $total_pages, $page_url);
}
if ($from > 1) {
$pre_bar = '#';
}
if ($to < $total_pages) {
$next_bar = '#';
}
$page_str = '';
for ($i = $from; $i <= $to; $i++) {
if ($i == $page) {
$page_str .= '<span class="current">' . $i . '</span>';
} else {
$page_str .= '<a href="' . str_replace('%i', $i, $page_url) . '">第' . $i . '页</a>';
}
}
$pageres['pager'] = '<div class="pages"><a href="' . $pageres['first_page'] . '" class="first">' . '首页' . '</a><a href="' . $pageres['pre_page'] . '" class="prev">' . '上一页' . '</a>' . $page_str . '<
