1. 程式人生 > >discuz 門戶diy實現翻頁功能的修改記錄

discuz 門戶diy實現翻頁功能的修改記錄

本文轉自IT擺渡網歡迎轉載,請標明出處。
擺渡網

更多discuz文章請閱讀

第一步:找到檔案:\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;
        }