zblogphp的分页器Pagebar类如何使用
当我们为Zblog开发的插件/模板不走系统内置的 ViewXX()
编辑器时,模板中就没有pagebar对象了。
想用系统的Pagebar功能,但是官方文档里没有介绍该怎么使用,就只能查看源码了。
在路由文件中,是这样使用的:
/*
* @param string $route
* 形如 '{%host%}post/{%id%}.html' 或者 '{%host%}?act={%act%}{&page=%page%}'
* url的query部分只能支持匹配'&'开头,如{&page=%page%};
* 而{?act=%act%}将会匹配出错。必要时的可以看源码了解其路由匹配规则。
*/
$pagebar = new Pagebar($route);
Pagebar的构造函数其实有很多参数:
/**
* @param $urlrule 可以是路由字符串或路由数组(就是zblogphp对象的成员函数`RegRoute()`传入的参数)
* @param bool $no_use 该参数已被废弃了
* @param bool $useAbbr 设置为true为精简模式,就把{%page%}之后的全部删除,再删除之前的,一直到}/&为止
* @param bool $forceDisplayFirstPage = false 强制pagebar显示第一页
*/
public function __construct($urlrule, $no_use = true, $useAbbr = false, $forceDisplayFirstPage = false){}
但是新建对象只要传入第一个参数就好了,其他的参数真的一般用不到。
新建对象后直接调用Make()
函数并不能正确地输出分页链接,还需要对其必要的成员以及路由规则中的参数赋值。
比如: {%host%}category-{%id%}_{%page%}.html
$pagebar->PageCount = $zbp->displaycount;
$pagebar->PageNow = $page;
$pagebar->PageBarCount = $zbp->pagebarcount;
$pagebar->UrlRule->Rules['{%id%}'] = 8;
$pagebar->UrlRule->Rules['{%page%}'] = $page; // page 参数并不是必须的
$pagebar->Make();
还可以定义上下首尾按钮的文字:
$zbp->lang['msg']['first_button'] = 'First';
$zbp->lang['msg']['prev_button'] = '上一页';
$zbp->lang['msg']['next_button'] = 'Next';
$zbp->lang['msg']['last_button'] = '尾页';
如此这般,就能使用zblogphp的pagebar对象了。