虽然可以通过CSS控制(如 `overflow:hidden`)来解决模板被撑破的问题,但这显然不是最佳方案,因为访问者将无法方便地浏览接下来的页面。为了解决这一问题,可以通过修改代码实现更友好的分页显示效果。
例如,当总共有50个分页时,通过修改代码可以实现以下分页显示形式:
- 在第一页时:共50页: 上一页 1 2 3 4 5 6 7 8 9 10 下一页
- 在第10页时:共50页: 上一页 6 7 8 9 10 11 12 13 14 下一页
这种显示方式既简洁又实用。
### 修改步骤 #### 第一步:定位文件 需要修改的核心文件位于 `include/arc.archives.class.php`。
#### 第二步:修改动态页面分页函数 查找函数 `function GetPagebreakDM($totalPage,$nowPage,$aid)`(动态页面分页函数),找到以下代码片段:
for($i=1;$i<=$totalPage;$i++)
$total_list=10;
if($nowPage >= $total_list) {
$i = $nowPage-4;
$total_list = $nowPage+4;
if($total_list >= $totalPage) $total_list = $totalPage;
} else {
$i=1;
if($total_list >= $totalPage) $total_list = $totalPage;
}
for($i;$i<=$total_list;$i++)
for($i=1;$i<=$totalPage;$i++)
$total_list=10;
if($nowPage >= $total_list) {
$i = $nowPage-4;
$total_list = $nowPage+4;
if($total_list >= $totalPage) $total_list = $totalPage;
} else {
$i=1;
if($total_list >= $totalPage) $total_list = $totalPage;
}
for($i;$i<=$total_list;$i++)
### 注意事项 1. `$total_list=10;` 表示首个分页显示10个分页地址。可以根据需求调整此值。
2. `-4 +4` 的设置决定了当前页前后显示的分页数量。例如,在第一页时显示1-10;在第10页时显示6-14。
3. 动态页面分页函数和静态页面分页函数都需要修改。如果只修改动态页面分页函数,则仅支持DedeCMS 5.31版本;若同时修改两个函数,则可兼容DedeCMS 5.6和最新版5.7。
通过以上修改,不仅可以避免分页过多导致的模板撑破问题,还能提升用户体验,让分页更加直观和便捷。这种方法特别适合需要处理大量分页内容的网站,值得尝试。