文章分页
文章列表页一般需要开启分页,查询文章列表时使用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}