dede列表分页如何实现竖排显示?

99ANYc3cd6
预计阅读时长 18 分钟
位置: 首页 DEDE建站 正文

修改模板文件(推荐,最灵活)

这是最常用且最灵活的方法,你只需要修改列表页的模板文件,通过CSS来控制分页的样式即可,这种方法不涉及核心文件修改,升级系统时不会丢失。

dede列表分页竖排
(图片来源网络,侵删)

操作步骤:

  1. 找到列表模板文件 登录你的DedeCMS后台,进入【模板】->【默认模板管理】。 找到你当前使用的列表模板,通常是 list_article.htm (文章列表) 或 list_product.htm (产品列表) 等,点击后面的【修改】按钮。

  2. 定位分页代码 在模板文件中,找到分页的代码,它通常是这样的:

    <div class="dede_pages">
        <ul class="pagelist">
            {dede:pagelist listsize='5' listitem='index,pre,next,end,pageno'}
            </ul>
        </div>

    {dede:pagelist} 这个标签就是用来生成分页导航的。

  3. 修改HTML结构(关键步骤) 默认情况下,{dede:pagelist} 会生成一个 <ul> 列表,里面的 <li> 元素是横向排列的,为了实现竖排,我们需要将这个列表结构从横向的“菜单”样式,改成纵向的“列表”样式。

    dede列表分页竖排
    (图片来源网络,侵删)

    我们可以将 <ul>class 改为 pagelist-vertical,并确保每个分页项 <li> 都是块级元素并换行。

    修改后的HTML结构如下:

    <!-- 在你的列表内容下方,找到原来的分页代码,替换成这个 -->
    <div class="dede_pages">
        <!-- 给 ul 添加一个新的 class,方便我们用CSS控制 -->
        <ul class="pagelist pagelist-vertical">
            {dede:pagelist listsize='5' listitem='index,pre,next,end,pageno'}
            </ul>
        </div>
  4. 添加CSS样式 你需要添加CSS代码来让这个分页列表竖直排列,你可以将以下CSS代码添加到模板文件的 <head> 标签内,或者链接到你的外部CSS文件中。

    /* 竖排分页样式 */
    .pagelist-vertical {
        list-style: none; /* 移除默认的列表符号 */
        padding: 0;
        margin: 20px 0; /* 上下间距 */
        text-align: left; /* 文本左对齐,也可以根据需要居中 */
    }
    .pagelist-vertical li {
        display: block; /* 这是关键!将li元素变成块级元素,使其独占一行 */
        margin: 5px 0; /* 每个分页项之间的垂直间距 */
        /* 如果你希望分页项之间有分隔线,可以加上下面这行 */
        /* border-bottom: 1px solid #eee; */
    }
    /* 可选:让分页链接看起来更美观 */
    .pagelist-vertical li a {
        display: block; /* 让链接充满整个li */
        padding: 8px 15px;
        text-decoration: none;
        color: #333;
        border: 1px solid #ddd;
        border-radius: 3px;
    }
    .pagelist-vertical li a:hover {
        background-color: #f5f5f5;
        color: #0066cc;
    }
    /* 当前页码的样式 */
    .pagelist-vertical .thisclass {
        background-color: #0066cc;
        color: #fff;
        border-color: #0066cc;
        cursor: default;
    }
    .pagelist-vertical .thisclass a {
        color: #fff;
        background-color: transparent;
        border: none;
    }

完整效果预览:

list_article.htm 中的修改示例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">{dede:field.title/}_{dede:global.cfg_webname/}</title>
    <!-- 引入你的CSS文件,或者在这里写style标签 -->
    <style>
        /* 竖排分页样式 */
        .pagelist-vertical {
            list-style: none;
            padding: 0;
            margin: 20px 0;
            text-align: left;
        }
        .pagelist-vertical li {
            display: block;
            margin: 5px 0;
        }
        .pagelist-vertical li a {
            display: block;
            padding: 8px 15px;
            text-decoration: none;
            color: #333;
            border: 1px solid #ddd;
            border-radius: 3px;
        }
        .pagelist-vertical li a:hover {
            background-color: #f5f5f5;
            color: #0066cc;
        }
        .pagelist-vertical .thisclass {
            background-color: #0066cc;
            color: #fff;
            border-color: #0066cc;
            cursor: default;
        }
        .pagelist-vertical .thisclass a {
            color: #fff;
            background-color: transparent;
            border: none;
        }
    </style>
</head>
<body>
    <!-- 你的列表内容... -->
    {dede:list pagesize='20'}
    <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
    <p>[field:description function='cn_substr(@me, 100)']...</p>
    <hr>
    {/dede:list}
    <!-- 分页区域 - 修改这里 -->
    <div class="dede_pages">
        <ul class="pagelist pagelist-vertical">
            {dede:pagelist listsize='5' listitem='index,pre,next,end,pageno'}
        </ul>
    </div>
</body>
</html>

修改PHP文件(不推荐,有风险)

这种方法通过修改DedeCMS的核心PHP文件来改变分页的默认HTML结构。强烈不推荐,因为:

  1. 升级风险:当你升级DedeCMS时,这些修改会被覆盖,需要重新修改。
  2. 维护困难:不便于团队协作和后期维护。
  3. 可能引入bug:直接修改核心文件可能导致不可预知的问题。

如果你仍然想了解,操作如下:

  1. 找到PHP文件 文件路径为:/include/arc.listview.class.php

  2. 找到并修改代码 在这个文件中搜索 GetPageListST 函数,你会找到生成分页HTML的代码块,通常包含大量的 str_replace 来替换模板标签。

    你需要找到生成 <li> 标签的部分,并修改它,在每个 <li> 后面加上换行符 \n,并确保 <li> 标签是块级元素。

    找到类似这样的代码:

    $liststr = str_replace('<li>', '<li>' . "\n", $liststr);

    这部分代码可能已经存在,确保它没有被注释掉或修改。

    更复杂的修改是找到生成整个 <ul> 的部分,直接修改其结构,这需要你对PHP和正则表达式比较熟悉。

再次强调:此方法风险高,除非你非常清楚自己在做什么,否则请优先选择方法一。


总结与建议

方法 优点 缺点 推荐度
修改模板 安全、灵活、可维护,升级系统不受影响 需要手动添加CSS ⭐⭐⭐⭐⭐ (强烈推荐)
修改PHP 可以从根本上改变默认行为 有风险、难维护、升级会失效 ⭐ (不推荐,仅限高级玩家)

对于绝大多数用户来说,方法一是最佳选择,它只需要你修改模板文件和添加几行CSS代码,既安全又能达到你想要的效果,是Web开发中的标准实践。

-- 展开阅读全文 --
头像
dede 文章页乱码
« 上一篇 今天
织梦手机浏览器浏览体验如何?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

目录[+]