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对象了。

posted @ 2022-11-19 19:36  钰琪  阅读(224)  评论(0编辑  收藏  举报