• 注册
  • dz交流 dz交流 关注:15 内容:63

    discuz门户diy实现翻页功能的方法

  • 查看作者
  • 打赏作者
    • dz交流
    • 1、打开 \source\class\block\portal\block_article.php 文件
      找到
      function getdata($style, $parameter)
      修改为
      function getdata($style, $parameter, $bid)
      找到
      $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");
      在其上方加入:
      //首页翻页修改
      if($bid==53){
          $page = $_REQUEST['page']?$_REQUEST['page']:1;
          $startrow = ($page-1)*$items;
      }

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

      2、打开 \source\function\function_block.php 文件
      找到
      if($forceupdate) {
                block_updatecache($bid, true);
                $block = $_G['block'][$bid];
           }

      在其上方加入:
      //如果是首页最新文章,去掉缓存
          if ($bid == 53) {
              $forceupdate = 1;
          }

      找到
      $return = $obj->getdata($thestyle, $block['param']);
      修改为
      $return = $obj->getdata($thestyle, $block['param'],$bid);

      3、打开 \source\function\function_core.php 文件
      找到 function block_display($bid) 方法
      在其方法内的尾部加入:
      //翻页更改

      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;
      }

      至此,修改完成。

      擅长SEOSEM网站诊断、方案编写、优化运维

      请登录之后再进行评论

      登录

      分享有礼

    • 发表内容
    • 做任务
    • 实时动态