如何实现Discuz门户DIY中的翻页功能?

avatar
作者
筋斗云
阅读量:0
门户diy翻页功能实现方法:在discuz后台选择模板,编辑页面代码,添加分页函数并设置参数。

Discuz教程:门户DIY实现翻页功能的方法

如何实现Discuz门户DIY中的翻页功能?

修改文件和代码

步骤 文件路径 代码修改内容
1 \source\class\block\portal\block_article.php 找到函数function getdata(style, parameter)并修改为function getdata(style, parameter, $bid),在文件中再添加以下代码:
``php
if($bid==53){
$page = $_REQUEST['page']?$_REQUEST['page']:1;
$startrow = ($page-1)*$items;}
``
2 \source\function\function_block.php 在该文件中定位到if($forceupdate) {...},在其上方加入以下代码:
``php
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),并在其尾部添加以下代码:
``php
if($bid==53){...}
``(具体代码见下文)

详细代码说明

1. 修改block_article.php文件

 // 找到函数function getdata(style, parameter)并修改为function getdata(style, parameter, $bid)。 function getdata( style, parameter, $bid ) {     // 其他代码保持不变     if($bid==53){         $page = $_REQUEST['page'] ? $_REQUEST['page'] : 1;         $startrow = ($page-1)*$items;     }     // 其他代码保持不变     $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"); }

2. 修改function_block.php文件

 // 在该文件中定位到if($forceupdate) {...},在其上方加入以下代码: if ($bid == 53) {     $forceupdate = 1; } // 找到$return = $obj->getdata($thestyle, $block['param']);并将其修改为 $return = $obj->getdata($thestyle, $block['param'], $bid);

3. 修改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; }

相关问题与解答

问题1:如何查看DIY模块的记录ID?

:可以通过使用Firebug工具来查看DIY模块的记录ID,在浏览器中打开需要查看的页面,右键点击模块选择“检查元素”,然后在HTML标签中找到该模块,记录其ID值。

如何实现Discuz门户DIY中的翻页功能?

问题2:如何在后台升级数据库以支持分页功能?

:在后台升级数据库时,可以使用以下SQL语句:

 ALTER TABLE pre_common_block ADD ispage TINYINT DEFAULT 0; ALTER TABLE pre_common_block ADD perpagenum INT(10) DEFAULT 0;

这些语句会在pre_common_block表中添加ispage和perpagenum字段,分别用于控制是否启用分页以及每页显示的数量,完成数据库升级后,重新打开后台,随便找一个模块编辑看看是否显示分页功能,并设置每页的数量。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!