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