核心思路
- 后台操作:在帝国CMS的后台,像给新闻表或文章表添加字段一样,给留言板的数据表增加新的自定义字段。
- 前台修改:修改用户提交留言的表单模板(
/e/enews/gbookform.php),让新字段显示出来并可以被填写。 - 后台显示:修改后台管理留言的列表模板,让新字段在管理列表中也能显示出来。
- 前台展示:修改前台显示留言的模板,让新字段在最终展示给用户的留言列表中也显示出来。
第一步:在后台添加自定义字段
这是整个操作的基础。

(图片来源网络,侵删)
-
登录帝国CMS后台:使用你的管理员账号登录。
-
进入“数据表”管理:
- 在左侧菜单栏中,找到并点击 “系统” -> “数据表”。
- 在数据表列表页面,找到留言板对应的数据表,默认情况下,它的表名通常是
phome_enewsfeedback,你可以通过表名或描述来确认。
-
添加新字段:
- 点击该数据表条目后面的 [管理字段] 链接。
- 进入字段管理页面后,点击右上角的 [增加新字段] 按钮。
-
配置字段信息:
(图片来源网络,侵删)- 字段名:这是数据库中的字段名,必须使用小写英文字母、数字或下划线,
qq、user_address、weixin。不能使用中文。 - 字段说明:这是在后台管理界面显示的名称,可以使用中文,QQ号码”、“联系地址”、“微信号”。
- 字段类型:根据你的需求选择,对于文本信息,通常选择 "VARCHAR" (可变长度字符串),如果内容较长,可以选择 "TEXT" (文本)。
- 字段长度:如果选择了 "VARCHAR",需要设置一个最大长度,
50。 - 提示文字:这是在留言表单中,当鼠标悬停在字段上时显示的提示信息,对用户友好,请填写您的QQ号码,方便我们联系您”。
- 默认值:可以留空,也可以设置一个默认值,未填写”。
- 在发布表单中显示:务必勾选此项! 否则前台留言表单将不会出现这个字段。
- 在列表显示:建议勾选此项,这样在后台管理留言列表时也能看到这个字段。
- 其他选项:如“为空值”、“唯一”等,根据你的需求设置即可,一般留言板字段不需要“唯一”。
- 字段名:这是数据库中的字段名,必须使用小写英文字母、数字或下划线,
-
保存字段:
- 填写完所有必要信息后,点击页面底部的 [提交] 按钮。
至此,后台的数据字段添加完成,数据库表结构已经更新。
第二步:修改前台留言表单模板
这一步是为了让用户能够在留言表单中看到并填写你刚刚添加的字段。
-
找到模板文件:
(图片来源网络,侵删)- 通过FTP或你的主机文件管理器,访问帝国CMS的根目录。
- 找到并打开
/e/enews/gbookform.php文件,这就是留言板的前台表单模板。
-
编辑模板文件:
- 用代码编辑器(如VS Code, Sublime Text, Dreamweaver)打开
gbookform.php。 - 找到类似下面的表单代码块(通常在
<form ...>标签内):<tr> <td>您的姓名:</td> <td><input name="name" type="text" size="40" class="inputText"></td> </tr> <tr> <td>联系邮箱:</td> <td><input name="email" type="text" size="40" class="inputText"></td> </tr> <tr> <td>留言内容:</td> <td><textarea name="saytext" cols="60" rows="10" class="inputText"></textarea></td> </tr>
- 在你想要的位置添加新的表单行,想在“联系邮箱”后面添加“QQ号码”字段,就插入如下代码:
<tr> <td>QQ号码:</td> <td><input name="qq" type="text" size="40" class="inputText"></td> </tr>
- 注意:
<input>标签的name属性必须与你在第一步中设置的字段名(小写)完全一致!这里是qq。 - 你可以根据需要调整样式,比如加上
class来美化,或者加上placeholder属性作为提示。
- 用代码编辑器(如VS Code, Sublime Text, Dreamweaver)打开
-
保存文件:
- 将修改后的
gbookform.php文件上传回服务器,覆盖原文件。
- 将修改后的
访问你的留言板页面,应该就能看到新添加的字段了。
第三步(可选但推荐):修改后台管理列表模板
为了在后台管理留言时也能方便地看到新字段,你需要修改列表模板。
-
找到模板文件:
- 通过FTP,访问帝国CMS的根目录。
- 找到并打开
/e/DoFeedback.php文件,这是处理留言的后台文件,里面也包含了列表显示的HTML结构。
-
编辑模板文件:
- 用代码编辑器打开
DoFeedback.php。 - 找到显示留言列表的表格头部 (
<thead>) 和表格主体 (<tbody>) 的部分,代码结构通常如下:// 表头 <tr> <th>ID</th> <th>姓名</th> <th>邮箱</th> <th>内容</th> <th>状态</th> <th>管理</th> </tr> // 循环输出每条留言的PHP代码 while($r=$empire->fetch($sql)) { ?> <tr> <td><?=$r['id']?></td> <td><?=$r['name']?></td> <td><?=$r['email']?></td> <td><?=$r['saytext']?></td> <td>...</td> <td>...</td> </tr> <?php } - 在表头和表格主体中分别添加新列。
- 在
<tr>(表头行) 中添加一个<th>:<th>QQ号码</th> - 在显示每条留言的
<tr>(数据行) 中,对应位置添加一个<td>:<td><?=$r['qq']?></td> - 注意:
$r['qq']中的qq同样是你在第一步中设置的字段名。
- 在
- 用代码编辑器打开
-
保存文件:
- 将修改后的
DoFeedback.php文件上传回服务器。
- 将修改后的
登录后台去管理留言,列表中就会显示“QQ号码”这一列了。
第四步(可选):修改前台留言展示模板
如果你希望在前台展示给所有用户的留言列表中也能看到这个新字段,还需要修改展示模板。
-
找到模板文件:
- 这个模板通常由你的模板决定,如果你使用的是默认模板,它可能在
/e/plays/gbook/index.php或类似路径下,更通用的方法是,在你的模板目录(如/e/data/template/)下找到留言板对应的模板文件。
- 这个模板通常由你的模板决定,如果你使用的是默认模板,它可能在
-
编辑模板文件:
- 这个文件的修改方法和第三步类似,找到循环输出留言的代码块。
- 在你希望显示新字段的位置,添加
<?=$r['你的字段名']?>即可。<div class="gbook-item"> <p><strong><?=$r['name']?></strong> (<?=$r['qq']?>) 说:</p> <p><?=$r['saytext']?></p> <p class="gbook-time"><?=$r['saytime']?></p> </div>
-
保存文件。
总结与注意事项
- 字段名是关键:从后台添加字段到前台修改模板,所有地方引用的字段名(如
qq)必须完全一致且区分大小写。 - 文件权限:确保修改和上传文件时,Web服务器用户对该文件有写入权限(通常是
755或644)。 - 缓存问题:修改模板文件后,如果前台页面没有立即更新,可以尝试清除浏览器缓存或帝国CMS的全局缓存(在后台“系统”->“数据更新”->“刷新页面”)。
- 安全性:对于用户提交的额外信息,建议在后台添加时,对字段类型和长度做适当限制,避免SQL注入等安全问题,帝国CMS本身有基础的过滤机制,但良好的习惯是必要的。
按照以上四个步骤,你就可以成功地为帝国CMS留言板添加任意数量的自定义字段了,如果在操作中遇到任何问题,可以随时提出,我会尽力帮助你解决。
