ClassCMS

文章分页

文章列表页一般需要开启分页,查询文章列表时使用page参数,开启分页查询.

当page等于数字时,则指定第n页查询,

当page等于非数字时,自动获取当前分页数,如分页规则为 /home/(page).html,当前网址为/home/5.html,则查询第5页的文章

默认栏目的分页页面标识为list,栏目的分页页面网址格式为:/($.id)/page_(page).html (page)为分页的页码名

{$test.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}

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

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

文章调用
<?php
$test['page']='page';//启用分页
$test['pageurl']='/home/(page).html';//分页规则
$test['channelurl']='/home/';//分页第一页地址
//$test['pagename']='fenye'; //指定网址中的分页参数名,如 /home/(fenye).html,分页时会替换(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}