门户diy翻页功能实现方法:在discuz后台选择模板,编辑页面代码,添加分页函数并设置参数。
Discuz教程:门户DIY实现翻页功能的方法

修改文件和代码
| 步骤 | 文件路径 | 代码修改内容 |
| 1 | \source\class\block\portal\block_article.php | 找到函数function getdata(style, parameter)并修改为function getdata(style, parameter, $bid),在文件中再添加以下代码: `` php`` |
| 2 | \source\function\function_block.php | 在该文件中定位到if($forceupdate) {...},在其上方加入以下代码: `` php``,然后找到$return = $obj->getdata($thestyle, $block['param']);并将其修改为$return = $obj->getdata($thestyle, $block['param'],$bid); |
| 3 | \source\function\function_core.php | 在该文件中定位到方法function block_display($bid),并在其尾部添加以下代码: `` php``(具体代码见下文) |
详细代码说明
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值。

问题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字段,分别用于控制是否启用分页以及每页显示的数量,完成数据库升级后,重新打开后台,随便找一个模块编辑看看是否显示分页功能,并设置每页的数量。