dede首页留言板如何正确设置与使用?

99ANYc3cd6
预计阅读时长 32 分钟
位置: 首页 DEDE建站 正文
  1. 创建留言板栏目:在后台建立一个专门用于存放留言的栏目。
  2. 添加留言板内容页:生成一个实际的留言页面。
  3. 制作留言板模板:编写留言板页面的 HTML 结构和样式。
  4. 首页调用留言板:在网站首页的某个位置,显示最新的留言摘要。
  5. 高级应用:AJAX 无刷新留言:提升用户体验。

第一步:创建留言板栏目

这是最基础的一步,目的是告诉 DedeCMS 我们有一个专门存放留言的板块。

dede 首页 留言板
(图片来源网络,侵删)
  1. 登录您的 DedeCMS 后台。
  2. 在左侧菜单栏中,找到 【核心】 -> 【栏目管理】
  3. 点击 【增加顶级栏目】
  4. 在弹出的表单中填写以下信息:
    • 栏目名称:填写 留言板访客留言
    • 栏目目录:系统会自动根据栏目名称生成一个拼音目录,如 liuyanban,你可以手动修改,但建议使用英文或拼音,避免使用中文。
    • 栏目类型:选择 【普通栏目】
    • :选择
    • 列表模板:先不填,等我们制作好模板文件后再选择。
    • 发布位置:可以不选,因为我们通常不会在首页直接显示整个留言板列表,而是调用最新留言。
  5. 填写完毕后,点击 【确定】 保存。

一个名为“留言板”的顶级栏目就创建好了。


第二步:添加留言板内容页

这个页面就是用户访问时看到的完整留言列表页面。

  1. 【栏目管理】 中,找到你刚创建的“留言板”栏目。
  2. 点击栏目名称右侧的 【增加文档】
  3. 填写文档信息:
    • 填写 访客留言板
    • 栏目选择:确保选择的是你刚创建的“留言板”栏目。
    • 作者来源:可以留空或填写“管理员”。
    • 缩略图:可以上传一张留言板的封面图,也可以不填。
    • 这里可以写一些引导语,欢迎来到我们的网站,请留下您的宝贵意见或建议!”。
    • 发布选项:确保 【生成HTML】 是勾选状态。
  4. 点击 【确定】 保存。

第三步:制作留言板模板

这是留言板页面的核心,决定了留言板的外观和功能。

  1. 创建模板文件

    dede 首页 留言板
    (图片来源网络,侵删)
    • 通过 FTP 或服务器的文件管理工具,进入您的 DedeCMS 安装目录。
    • 找到 /templets/ 目录。
    • /templets/ 目录下新建一个文件夹,default(如果已经存在则直接使用)。
    • /templets/default/ 目录下,新建一个 HTML 文件,命名为 guestbook.htm,这个文件名就是我们之前在“栏目管理”中设置的“栏目目录”liuyanban 对应的模板。
  2. 编写模板代码 (guestbook.htm): 下面是一个完整且常用的留言板模板代码,包含了留言列表、留言表单和分页。

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">{dede:field.title/} - {dede:global.cfg_webname/}</title>
    <meta name="description" content="{dede:field.description function='html2text(@me)'/}" />
    <link rel="stylesheet" href="{dede:global.cfg_templets_skin/}/style.css">
    <style>
        .guestbook-list { margin-top: 20px; }
        .guestbook-item { border-bottom: 1px solid #eee; padding: 15px 0; }
        .guestbook-info { color: #666; font-size: 12px; margin-bottom: 5px; }
        .guestbook-content { line-height: 1.6; }
        .reply-box { background-color: #f9f9f9; padding: 15px; border-radius: 5px; margin-top: 10px; }
        .reply-title { color: #0066cc; font-weight: bold; margin-bottom: 5px; }
        .guestbook-form { margin-top: 30px; padding: 20px; border: 1px solid #ddd; border-radius: 5px; }
        .form-group { margin-bottom: 15px; }
        .form-group label { display: block; margin-bottom: 5px; font-weight: bold; }
        .form-group input, .form-group textarea { width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 3px; box-sizing: border-box; }
        .form-group textarea { height: 100px; resize: vertical; }
        .btn-submit { background-color: #0066cc; color: white; padding: 10px 20px; border: none; border-radius: 3px; cursor: pointer; }
        .btn-submit:hover { background-color: #0052a3; }
    </style>
    </head>
    <body>
    <div class="main">
        <h1>{dede:field.title/}</h1>
        <!-- 留言列表 -->
        <div class="guestbook-list">
            {dede:feedback}
            <div class="guestbook-item">
                <div class="guestbook-info">
                    <span class="user">访客:[field:username function='(@me=="guest" ? "匿名网友" : @me)'/]</span>
                    <span class="time">发表于:[field:msgtime function='strftime("%Y-%m-%d %H:%M:%S", @me)'/]</span>
                </div>
                <div class="guestbook-content">
                    [field:msg/]
                </div>
                <!-- 管理员回复 -->
                [field:isreply/]
                <div class="reply-box">
                    <div class="reply-title">管理员回复:</div>
                    <div>[field:reply/]</div>
                </div>
                <!-- /管理员回复 -->
                </div>
            {/dede:feedback}
            <!-- 如果没有留言,显示提示 -->
            <div class="no-message" style="text-align: center; padding: 20px; color: #999;">
                暂无留言,快来抢沙发吧!
            </div>
        </div>
        <!-- 留言表单 -->
        <div class="guestbook-form">
            <h3>发表留言</h3>
            <form action="{dede:global.cfg_cmspath/}/plus/feedback.php" method="post" name="feedback">
                <input type="hidden" name="action" value="send" />
                <input type="hidden" name="aid" value="{dede:field.id/}" />
                <input type="hidden" name="dede_fields" value="username,text;msg,text" />
                <input type="hidden" name="dede_fieldshash" value="{dede:hash md5=('/username/msg')/}" />
                <div class="form-group">
                    <label for="username">您的昵称:</label>
                    <input type="text" name="username" id="username" class="intxt" required />
                </div>
                <div class="form-group">
                    <label for="msg">留言内容:</label>
                    <textarea name="msg" id="msg" class="textarea" required></textarea>
                </div>
                <div class="form-group">
                    <!-- 验证码,防止恶意提交 -->
                    {dede:php}
                    if($cfg_feedback_ck=='Y')
                    {
                        echo '<label for="vdcode">验证码:</label>';
                        echo '<input type="text" name="vdcode" id="vdcode" style="width:50px;text-align:center;"/>&nbsp;';
                        echo "<img src='{$cfg_cmspath}/include/vdimgck.php' style='cursor:pointer;' onclick='this.src=\"{$cfg_cmspath}/include/vdimgck.php?\"+Math.random();' alt='看不清?点击更换' />";
                    }
                    {/dede:php}
                </div>
                <button type="submit" class="btn-submit">提交留言</button>
            </form>
        </div>
        <!-- 分页 -->
        {dede:pagebreak/}
    </div>
    </body>
    </html>
  3. 更新栏目设置

    • 回到 DedeCMS 后台 【栏目管理】
    • 点击“留言板”栏目右侧的 【更改】
    • 【列表模板】 选项中,选择我们刚刚创建的模板 /templets/default/guestbook.htm
    • 点击 【确定】 保存。
  4. 生成页面

    • 进入 【生成】 -> 【更新栏目HTML】,选择“留言板”栏目并更新。
    • 进入 【生成】 -> 【更新文档HTML】,选择“留言板”栏目下的那篇文档并更新。

访问你的留言板页面(http://你的域名/liuyanban),应该就能看到一个可以正常使用的留言板了。

dede 首页 留言板
(图片来源网络,侵删)

第四步:首页调用最新留言

我们通常希望在首页展示几条最新的留言,以增加网站互动性。

  1. 打开首页模板: 通过 FTP 或服务器文件管理,打开 /templets/default/ 目录下的 index.htm 文件。

  2. 添加调用代码: 在你希望显示留言的位置(例如侧边栏、底部等),加入以下 DedeCMS 标签。

    代码示例:

    <div class="sidebar-box">
        <h3>最新留言</h3>
        <ul class="guestbook-list-index">
            {dede:feedback row='5' titlelen='30' infolen='60'}
            <li>
                <span class="user">[field:username function='(@me=="guest" ? "匿名网友" : @me)'/]:</span>
                <a href="{dede:field name='arcurl'/}#comment" title="[field:msg/]">
                    [field:msg function='cn_substr(@me, 60)'/]
                </a>
                <span class="time">([field:msgtime function='strftime("%m-%d", @me)'/])</span>
            </li>
            {/dede:feedback}
        </ul>
    </div>

    代码解释:

    • {dede:feedback ...}:调用留言的标签。
    • row='5':显示 5 条最新留言。
    • titlelen='30'长度,这个对留言无效,但可以保留。
    • infolen='60'的长度,截取 60 个字符。
    • [field:username function='(@me=="guest" ? "匿名网友" : @me)'/]:判断用户名,如果是 "guest"(游客)则显示“匿名网友”,否则显示用户名。
    • [field:msg function='cn_substr(@me, 60)'/]:对留言内容进行截取,显示前 60 个字符。
    • [field:msgtime function='strftime("%m-%d", @me)'/]:格式化留言时间,只显示月-日。
    • {dede:field name='arcurl'/}#comment:这条是关键,它会链接到留言板页面的评论区。#comment 是 HTML 的锚点,可以跳转到页面的评论(留言)区域。
  3. 更新首页: 回到 DedeCMS 后台,进入 【生成】 -> 【更新主页HTML】,点击“开始更新”。

刷新你的网站首页,就能看到最新留言了。


第五步:高级应用 - AJAX 无刷新留言

默认的留言方式是提交后整个页面刷新,体验不好,我们可以通过引入 AJAX 功能来实现无刷新提交。

这通常需要修改系统文件或使用现成的插件,有一定技术门槛。

基本思路:

  1. 修改 /plus/feedback.php:在其中增加一个判断,如果请求是 AJAX 方式,则只返回 JSON 数据(如 {"code":1,"msg":"提交成功"}),而不是跳转整个页面。
  2. 修改模板 guestbook.htm 中的表单:将 formonsubmit 事件绑定一个 JavaScript 函数,阻止默认提交。
  3. 编写 JavaScript 代码:使用 fetch$.ajax 发送表单数据到 feedback.php,并根据返回的 JSON 数据,动态地在页面上添加新的留言项,并清空表单。

警告:直接修改核心文件(如 feedback.php)在系统升级后可能会被覆盖,建议在修改前备份文件,或者寻找更安全的插件方案。

创建一个 DedeCMS 首页留言板,核心就是 “建栏目 -> 加内容 -> 写模板 -> 调用数据” 这四个步骤,虽然看起来步骤较多,但每一步都很清晰,按照以上步骤操作,你就能成功地在你的 DedeCMS 网站上搭建一个功能完善的留言板了。

-- 展开阅读全文 --
头像
为何过长?如何优化?
« 上一篇 03-12
C语言如何设计高效实验设备管理系统?
下一篇 » 03-12

相关文章

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

目录[+]