{$pages} 里的 HTML 不是写在模板里的,而是系统读取分页配置文件后自动生成的。所以"自定义它的内容"本质是三条路:改配置、给这个标签单独指定配置、或者彻底放弃 {$pages} 自己拼 HTML。下面按自由度从低到高讲。
一、改分页配置文件(全站生效)
{$pages} 的渲染规则来自这些文件:
/config/page/pc/page.php 电脑端 · 前台分页
/config/page/pc/member.php 电脑端 · 用户中心
/config/page/mobile/page.php 移动端 · 前台分页
/config/page/mobile/member.php 移动端 · 用户中心
/config/page/pc/ajax.php 评论 ajax 分页(不存在就复制 page.php)
多站点则在对应站点目录下新建同名文件。文件返回一个配置数组,可改的参数如下:
<?php
return array(
// 统计
'total_link' => '共%s条', // FALSE = 不显示
'total_tag_open' => '',
'total_tag_close' => '',
// 'total_remove_anchor' => true, // 统计去掉 a 标签
'total_anchor_class' => '',
// 下一页
'next_link' => '下一页', // FALSE = 不显示
'next_tag_open' => '<li>',
'next_tag_close' => '</li>',
'next_anchor_class' => '',
// 上一页
'prev_link' => '上一页',
'prev_tag_open' => '<li>',
'prev_tag_close' => '</li>',
'prev_anchor_class' => '',
// 当前页
'cur_tag_open' => '<li class="active"><a>',
'cur_tag_close' => '</a></li>',
// 数字页码
'num_tag_open' => '<li>',
'num_tag_close' => '</li>',
'num_anchor_class' => '',
// 首页 / 尾页
'first_link' => '第一页',
'first_tag_open' => '<li>',
'first_tag_close' => '</li>',
'last_link' => '最后一页',
'last_tag_open' => '<li>',
'last_tag_close' => '</li>',
// 全局控制
'display_pages' => TRUE, // 是否显示数字页码
'num_links' => 4, // 当前页左右各显示几个数字
'anchor_class' => '', // 每个链接统一加的 class
'data_page_attr' => 'data-ci-pagination-page', // 每个链接自带的页码属性,设 '' 则不加
'full_tag_open' => '<ul class="pagination">',
'full_tag_close' => '</ul>',
// v4.3.13 以上支持:强制显示(不足两页/链接重复时也输出)
'compel_page' => false,
'compel_prev_page' => false,
'compel_next_page' => false,
'compel_first_page' => false,
'compel_last_page' => false,
);
想去掉 <ul><li> 改成 <div><a>,只要把 full_tag_* 和 num_tag_*、cur_tag_* 全部改掉即可。
二、只改某一个标签:pagefile 参数(推荐)
如果只有这个列表页要用特殊样式,别动全局配置。新建一个 /config/page/pc/my_page.php(内容同上),然后在循环标签上加参数:
{module module=news catid=$catid page=1 pagesize=10 urlrule=$urlrule pagefile=my_page}
<a href="{$t.url}">{$t.title}</a>
{/module}
{if $nums>1}{$pages}{/if}输出标签依旧是 {$pages},但会按 my_page.php 渲染。不同页面可以各自指定不同的分页文件,互不干扰。
