ClassCMS

文章分页

文章列表页一般需要开启分页,查询文章列表时使用page参数,开启分页查询. 默认栏目的分页页面标识为list,栏目的分页页面网址格式为:/($.id)/page_(page).html (page)为分页的页码名

{$test.page=page} {//第一个page为参数名,第二个page为网址中的页码名}
{$articles=a($test)}
{loop $articles as $article}
    {$article.title}
{/loop}

模板输出当前页码:{if isset($_GET.page)}{$_GET.page}{else}1{/if},对应分页网址中的(page)

分页页码输出

开启分页之后,可以通过pagelist函数获取分页页码数组

{$pages=pagelist()}
{loop $pages as $page}
    <a href="{$page.link}" class="{$page.class}">{$page.title}</a>
{/loop}

如需自定义分页页面显示数量,可以在文章查询时加入showpages参数,如:{$test.showpages=4},默认显示4个页码

如需限制显示的最大页数,可以在文章查询时加入maxpage参数,如:{$test.maxpage=100},需搭配模型页面方法使用,使超过的页数返回404

参考默认模板 template:pagelist() 实现分页方法

分页信息

开启分页之后,可以通过pageinfo函数获取分页信息(如:页面总数,首页末页地址等,方便自定义分页).注意:只有使用pagelist函数后,pageinfo才能获取分页信息

{$pageinfo=pageinfo()}
{var_dump($pageinfo)}
单页显示数量:{$pageinfo.pagesize} 
当前页面:{$pageinfo.page} 
文章数量:{$pageinfo.article} 
首页地址:{$pageinfo.channelurl} 
当前页面网址:网址{$pageinfo.now.link}
首页地址:{$pageinfo.first.link}
末页地址:{$pageinfo.last.link}
上一页地址:{$pageinfo.prev.link}
下一页地址:{$pageinfo.next.link}
注意:上一页下一页有可能不存在,需要先使用isset判断:{if isset($pageinfo.prev.link)}上一页地址:{$pageinfo.prev.link}{/if}

指定分页页面标识与首页地址

手动指定分页标识后,系统会自动调用此标识的页面网址

文章调用
{$test.page=page}
{$test.pageroute=list2} {//分页页面标识}
{$test.channelroute=channel2} {//指定分页第一页的栏目页面标识,默认为channel}
{$articles=a($test)}
{loop $articles as $article}
    {$article.title}
{/loop}

自定义分页页面与首页地址

手动指定分页标识后,系统会自动调用此标识的页面网址

文章调用
{$test.page=page}
{$test.pageurl=/home/(page).html}
<?php
$test['channelurl']='/home/';//分页第一页地址
$test['pageurl']='/home/(page).html';//手动指定分页规则
//指定网址中的分页参数名,如 /index/(fenye)/,分页时会替换(fenye)为页码
//$test['pagename']='fenye';
//获取栏目66618103的list2分页网址,并将网址内的(aa)手动替换为123,适用于筛选等需要手动替换网址内参数的情况
//$test['pageurl']=C('cms:channel:url',66618103,'list',array(),array('aa'=>123));
?>
{$articles=a($test)}
{loop $articles as $article}
    {$article.title}
{/loop}