如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种形式采集行为。请尊重原创文章内容,转载请保留链接信息。

bW博客http://bw.bo-blog.com/也玩了一段时间了,整体上感觉就是:逼格高,思路好。但是用起来就是真心不顺手啊。前不久,我就吐槽说,bw的皮肤不好制作,分页麻烦。见:http://newsn.net/say/bo-blog-wind-theme-snss.html 不过最近,苏南大叔解决了这个问题,没有修改它的库文件,仅仅在皮肤里面做了修改。下面先奉上修改的pagination.php文件。大家可以看看思路哦。虽然代码写的不是太好,但是总归是解决了问题的。

<?php
$go = @trim($_GET["go"]);
$go_arr = explode("/", $go);
$current_page = @intval($go_arr[count($go_arr) - 1]);
$current_page = ($current_page <= 0) ? 1 : $current_page;
$params = get_defined_vars();
$currentPageLink = $conf["canonicalURL"];
//$passData = $params["this"]->passData;//非登陆状态下是null,很邪门
$passData = $this->passData;
$firstPageLink = @$passData["firstPageLink"];
$firstPageLink = $this->passData["firstPageLink"] = empty($firstPageLink) ? "#" : $firstPageLink;
$prevPageLink = @$passData["prevPageLink"];
$prevPageLink = $this->passData["prevPageLink"] = empty($prevPageLink) ? "#" : $prevPageLink;
$nextPageLink = @$passData["nextPageLink"];
$nextPageLink = $this->passData["nextPageLink"] = empty($nextPageLink) ? "#" : $nextPageLink;
$finalPageLink = @$passData["finalPageLink"];
$finalPageLink = $this->passData["finalPageLink"] = empty($finalPageLink) ? "#" : $finalPageLink;
$go_arr_final = explode("/", $finalPageLink);
$max_page = @intval($go_arr_final[count($go_arr_final) - 2]);
$base_url = ($max_page <= 0) ? join("/", array_splice(explode("/", $currentPageLink), 0, -2)) : join("/", array_splice($go_arr_final, 0, -2));
$max_page = ($max_page <= 0) ? 1 : $max_page;
if ($max_page == 1) {
    $firstPageLink = $this->passData["firstPageLink"] = "#";
    $finalPageLink = $this->passData["finalPageLink"] = "#";
}
if ($firstPageLink != "#") {
    ?>
    <a href="[[::firstPageLink]]"><span class="page">首页</span></a>
    <?php
}
if ($prevPageLink != "#") {
    ?>
    <a href="[[::prevPageLink]]"><span class="page">上一页</span></a>
    <?php
}
for ($i = 0; $i < $max_page; $i++) {
    $tmp_page = $i + 1;
    $link = $base_url . "/" . $tmp_page . "/";
    $current_css = ($tmp_page == $current_page) ? "now-page" : "";
    echo "<a href='" . $link . "' class='" . $current_css . "'><span class=\"page\">第" . $tmp_page . "页</span></a>";
}
if ($nextPageLink != "#") {
    ?>
    <a href="[[::nextPageLink]]"><span class="page">下一页</span></a>
    <?php
}
if ($finalPageLink != "#") {
    ?>
    <a href="[[::finalPageLink]]"><span class="page">尾页</span></a>
    <?php
}
?>

关键的突破口就来来自于:

$params = get_defined_vars();
$passData = $params["this"]->passData;

用get_defined_vars()这个系统函数,获取到了当前上下文环境中可用的所有变量。然后发现了变量$this,进而找到了passData属性,进而可以修改传递到模板上用于替换的变量们。思路比较奇葩,大家就看看吧。哈哈。当然了,目前来看就用

$this->passData

就可以访问相关的变量了,但是为了记录思路过程,这里还是把get_defined_vars()贴了出来。但是这里的get_defined_vars在非登陆状态下居然拿不到数据,很邪门。

尊重原创内容,转载请保留链接信息,感谢您的阅读。
模拟人工批量抓取盗版行为,保留版权法律诉讼权利。

关注互联网发展,关注苏南大叔的《程序如此灵动~》博客
本文章来自:程序如此灵动~
博客地址为:https://newsn.net/
原文地址为:https://newsn.net/say/bw-theme-pagination.html
上一篇好文:第一个bW博客主题新鲜出炉
下一篇好文:threejs,d3js,echart以及highchart

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。
如果本文对您有帮助,或者节约了您的时间,欢迎您打赏瓶饮料,建立一下友谊关系。
想要获取完整源码或相关软件?点击这里获取相关内容