discuz 门户diy实现翻页功能的修改记录

  • PHP二次开发
  • 2015-8-13 09:11
  • PHP二次开发网
  • 阅读(3932)
  • 评论(18
  • 摘要: 第一步:找到文件:\source\class\block\portal\block_article.php找到这个方法:function getdata($style, $parameter)将其修改为:function getdata($style, $parameter, $bid)在本文件再找到这样一段话:php代码 ...
    第一步:找到文件:\source\class\block\portal\block_article.php

    找到这个方法:function getdata($style, $parameter)

    将其修改为:function getdata($style, $parameter, $bid)

    在本文件再找到这样一段话:

    [代码]php代码:

    $query = DB::query("SELECT at.*, ac.viewnum, ac.commentnum FROM ".DB::table('portal_article_title')." at LEFT JOIN ".DB::table('portal_article_count')." ac ON at.aid=ac.aid WHERE $wheresql$keyword ORDER BY $orderby LIMIT $startrow, $items");

    在其上方加入:
    //首页翻页修改

    [代码]php代码:

                    if($bid==53){
                        $page = $_REQUEST['page']?$_REQUEST['page']:1;
                        $startrow = ($page-1)*$items;
                    }

    这里的bid为diy的记录id,查看方法可以通过firebug工具查看。此文中后面用到的bid均为此含义。


    第二部,找到文件\source\function\function_block.php

    定位到这里:

    [代码]php代码:

    if($forceupdate) {
              block_updatecache($bid, true);
              $block = $_G['block'][$bid];
         }

    在其上方加入:

    [代码]php代码:

     //如果是首页最新文章,去掉缓存
        if ($bid == 53) {
            $forceupdate = 1;
        }

    在本文件,在查找这样一句话:

    [代码]php代码:

    $return = $obj->getdata($thestyle, $block['param']);

    将其修改为:

    [代码]php代码:

    $return = $obj->getdata($thestyle, $block['param'],$bid);

    第三步,找到文件:\source\function\function_core.php

    定位到这个方法:function block_display($bid)

    在其方法内的尾部加入:

    [代码]php代码:

    //翻页更改
            if($bid==53){
                $page = $_REQUEST['page']?$_REQUEST['page']:1;
                $html = "<style>"
                        . ".page{padding:10px; float:left;}"
                        . ".page li{float:left; line-height:20px; padding:8px; font-size:16px;}"
                        . ".page li .on{color:#f57500; font-weight:800;}"
                        . "</style>";
                $html .= '<div class="page"><ul>';
                if($page<11){
                    for($i=1;$i<21;$i++){
                        if($page == $i){
                            $html.='<li><a href="/?page='.$i.'" class="on">'.$i.'</a></li>';
                        }else{
                            $html.='<li><a href="/?page='.$i.'">'.$i.'</a></li>';
                        }
                    }
                }else{
                    for($i=$page-9;$i<$page;$i++){
                        $html.='<li><a href="/?page='.$i.'">'.$i.'</a></li>';
                    }
                    $html.='<li><a href="/?page='.$page.'" class="on">'.$page.'</a></li>';
                    for($i=$page+1;$i<$page+10;$i++){
                        $html.='<li><a href="/?page='.$i.'">'.$i.'</a></li>';
                    }
                }
               $html .= "</ul></div>";
               echo $html;
            }


    至此,修改完成,案例请查看:www.php2.cc



    PHP技术交流QQ群:422137578

    除非注明,文章均为 PHP二次开发 原创,转载请注明本文地址:http://www.php2.cc/article-1857-1.html

    相关阅读

    发表评论

    最新评论

    引用 julyyun   2017-1-12 15:13
    PHP二次开发: 那是你没做好
    我检查了好几遍了,代码更改那边应该没什么问题,难道diy那边有什么地方需要注意的吗? 麻烦能告知下吗?先谢谢啦
    引用 PHP二次开发   2017-1-12 09:41
    julyyun: 全部按照你的做了,前台也出现了页码,可是每一页都是同样的数据啊,而且也不能限制一页有多少条数据啊
    那是你没做好
    引用 julyyun   2017-1-11 17:12
    全部按照你的做了,前台也出现了页码,可是每一页都是同样的数据啊,而且也不能限制一页有多少条数据啊
    引用 九五至尊老品牌值得   2016-5-7 09:58
    谢谢分享,帮我大忙了。
    引用 PHP二次开发   2016-4-12 08:41
    博主你好: 就是DIY高级模式下 鼠标悬停在模块上左上角显示的ID:
    是的哈,还真没注意这个。
    引用 博主你好   2016-4-9 21:32
    PHP二次开发: 左上角没显示啥ID吧?通过firebug去看哈。
    就是DIY高级模式下 鼠标悬停在模块上左上角显示的ID:
    引用 PHP二次开发   2016-4-7 13:10
    博主你好: 又检查了一遍,应该对了额,,文中说的 这里的bid为diy的记录id,是不是就是指 DIY模块左上角显示的ID?
    左上角没显示啥ID吧?通过firebug去看哈。
    引用 博主你好   2016-4-6 21:51
    PHP二次开发: page的值没有传入到查询语句,注意核对下更改代码的地方,可能漏掉了某一部分。
    又检查了一遍,应该对了额,,文中说的 这里的bid为diy的记录id,是不是就是指 DIY模块左上角显示的ID?
    引用 PHP二次开发   2016-4-6 12:00
    博主你好: 有几个错别字。。是    博主你好,按照你的教程做了,下方有了分页,可是点击第二页,第三页。。。等页面之后显示的还是首页,不过网站链接后缀有?page=2,?page ...
    page的值没有传入到查询语句,注意核对下更改代码的地方,可能漏掉了某一部分。
    引用 博主你好   2016-4-5 21:57
    博主你好: 博主你好,按照你的教程做了,下方有了分页,可以点击第二页,第三页。。。等页面后显示的还是首页,不过网站链接后缀有?page=2,?page=3。。。了请教这是什么原 ...
    有几个错别字。。是    博主你好,按照你的教程做了,下方有了分页,可是点击第二页,第三页。。。等页面之后显示的还是首页,不过网站链接后缀有?page=2,?page=3。。。 请教这是什么原因呢? ...
    引用 博主你好   2016-4-5 21:55
    博主你好,按照你的教程做了,下方有了分页,可以点击第二页,第三页。。。等页面后显示的还是首页,不过网站链接后缀有?page=2,?page=3。。。了请教这是什么原因呢
    引用 PHP二次开发   2016-3-25 08:53
    a1980: 请问作者,照您的作法做好后,请问如何在diy实现呢? 目前在diy的数据里加上&quot;{moreurl}&quot;,会出现更多页的选单出来,但设定好后,却无法实现,感觉真的 ...
    没看明白。
    引用 a1980   2016-3-24 11:52
    请问作者,照您的作法做好后,请问如何在diy实现呢?
    目前在diy的数据里加上"{moreurl}",会出现更多页的选单出来,但设定好后,却无法实现,感觉真的只差一步了,是否能请作者提供,能实现的diy的数据呢?借以参考,谢谢!
    引用 PHP二次开发   2016-2-28 14:36
    xiaocai: 您好,按照上面教程修改后,点击任意分页码都跳转到论坛首页。。
    你是做的论坛还是门户?注意设置好默认页面,可以去掉跳转的尾巴。
    引用 xiaocai   2016-2-27 15:20
    您好,按照上面教程修改后,点击任意分页码都跳转到论坛首页。。
    引用 PHP二次开发   2016-2-11 15:34
    爱善美: 按照你的教材操作了没有成功,请教第3步代码应该加在那个位置,第2步找到两个$return = $obj->getdata($thestyle, $block ); 都要改吗 ...
    第三步放到函数结尾的}里面。第二步我记得只找到一处呢,你可以两处都改了试试。
    引用 爱善美   2016-2-9 19:59
    按照你的教材操作了没有成功,请教第3步代码应该加在那个位置,第2步找到两个$return = $obj->getdata($thestyle, $block['param']); 都要改吗
    引用 爱善美   2016-2-9 19:57
    请教第3不代码应该加在那个位置

    查看全部评论(18)

    用户名:  *

    邮 箱:  *

    网 址: 注意加上“http://”哦!