DedeCMS留言簿插件二次开发浅析
DedeCMS固然强大,可是有些细节做的并不完善,今天余斗就要说说Dede的留言簿插件,这个插件很多企业站都需要用到,因为需要搜集用户的留言反馈。但是我们安装了留言簿插件后就会发现默认的样式简直丑到爆,审美还停留在前几年,而且有好多信息是我们不需要显示的,这里就需要我们进行二次开发。
系统默认留言簿样式
分析下留言簿插件我们会发现,它的显示页面是/plus/guestbook.php,因为要传参,所以是php页面,不能使用静态页面,这个余斗目前还没有找到好的解决方法,不过也不影响使用,这个guestbook.php页面的模版就是guestbook.htm文件,细心的用户会发现guestbook的里的模版有三个,其他两个是:guestbook-admin.htm和guestbook-user.htm ,其他两个是对留言回复时候用到的,一个是管理员回复的模版,一个是其他用户回复的模版。我们做的修改只在guestbook.htm文件中,接下来余斗就做下留言簿二次开发的浅析:
1.大部分留言版页面都是自己的模版样式,这时需要将生成好的页面直接复制到guestbook.htm中,如果想做成模版调用的形式,请参考《DedeCMS留言版调用head/foot.htm》,余斗这里是直接用生成好的页面套用的。
2.留言板的模板里面不能使用普通的“dedecms标签”,只能使用的是“PHP标签” ,具体参考《DedeCMS留言簿调用标签使用》。
3.系统默认的留言簿是没有开启审核功能,要实现需要在后台-系统-系统基本参数-互动设置-评论及留言(是/否)需审核,勾选“是”。
这里有个小Bug,设置好了之后如果在后台用/plus/guestbook.php查看留言簿并没有出现审核链接,这算是不完善的地方,余斗查阅之后了解到需要在/plus/guestbook.php?gotopagerank=admin这个链接下才会出现审核链接,这里可以修改dede/inc/inc_menu.php,将我们不需要的功能替换以下,这里余斗替换的是评论功能,替换后的代码为:
<m:item
name=
‘留言管理’
link=
‘../plus/guestbook.php?gotopagerank=admin’ rank=
‘sys_Feedback’
target=
‘main’/>
这样刷新后台就会这样显示:
3.默认的留言版模版是用原始的表格做成,我们要改成div形式,余斗的核心代码如下:
<div>
<?php
$ntt=
0;
$bgcc =
‘#FBFEED’;
?> <!– 这个是判断是不是admin管理员 –>
{dede:datalist} <!– 调用留言信息列表开始–>
<div>
<h4><span><?php echo $fields[
‘uname’]; ?></span><!– 姓名调用–>
<em><?php echo MyDate(
‘m-d’,$fields[
‘dtime’]); ?></em><!– 留言时间调用–>
<?php
if($g_isadmin) { ?><!– 判断是否是管理员,因为是隐私信息,只对管理可见–>
<em>手机:<?php echo $fields[
‘qq’]; ?> [手机仅管理员可见]</em><!– 手机号(qq号)调用 –>
<?php }
?>
</h4>
<div></div>
<p><?php echo $fields[
‘msg’]; ?></p><!– 留言内容调用–>
<?php
if($g_isadmin) { ?><!– 判断是否是管理员,如果是则开启审核和编辑权限 –>
<div>
<?php echo GetIsCheck($fields[
‘ischeck’],$fields[
‘id’])?><!– 审核链接 –>
<a
href=
‘guestbook.php?action=admin&id=<?php echo $fields[‘
id‘]; ?>’>[回复/编辑]</a> <!– 回复/编辑链接 –>
<a
href=
‘guestbook.php?action=admin&id=<?php echo $fields[‘
id‘]; ?>&job=del’>[删除]</a> [此项仅管理员可见]<!– 删除链接 –>
</div>
<?php } ?>
<?php
if($ntt==
0){$ntt=
1;}
else{ $ntt=
0; } ?><!–这个是判断是不是admin管理员,如果是,就有回复,删除的权限,如果不是,则没有回复,删除的权限。 –>
</div>
{/dede:datalist}<!– 调用留言信息列表结束 –>
{dede:pagelist listsize=
‘5’/}<!– 分页列表,此处为5条一页 –>
<div></div>
<div>
<
form method=
“post”
action=
“guestbook.php”
name=
“form1”><!– 留言版表单开始–>
<input
type=
‘hidden’
name=
‘action’
value=
‘save’/>
<ul>
<li>
<p><span >* </span>姓名:</p>
<p><input
type=
‘text’
name=
“uname”
id=
‘name’ size=
“30” maxlength=
“10”
value=
“<?php echo $g_name; ?>” valid=
“required|limit” errmsg=
“请输入姓名!|姓名长度必须在1-15个字符之间!”
max=
“10”
min=
“1”/></p><!– 姓名输入框–>
</li>
<li>
<p><span >* </span>手机:</p>
<p><input
type=
‘text’
name=
“qq”
id=
‘mobile’ size=
“30” maxlength=
“11” valid=
“required|isMobile|limit” errmsg=
“请输入手机号码!|手机号码格式有误!|手机号码长度必须为11个字符!”
max=
“11”
min=
“11”/>[此项仅管理员可见]</p><!– 手机(QQ)输入框 –>
</li>
<li>
<p ><span >* </span>留言内容:</p>
<p><textarea
name=
“msg”
id=
‘nr’ valid=
“required” cols=
“45” rows=
“5” errmsg=
“请填写留言内容!”></textarea></p><!– 留言内容输入框 –>
</li>
<li>
<p><span >* </span>验证码:</p>
<p><input
name=
“validate”
type=
“text”
id=
“vdcode2”/><img
src=
‘../include/vdimgck.php’/></p><!– 验证码功能–>
</li>
<li>
<p><input
type=
“submit”
name=
“submit”
value=
“提 交”/><!– 提交按钮 –>
<input
type=
“reset”
name=
“reset”
value=
“重 置”/><!– 重置按钮 –></p>
</li>
</ul>
</
form><!– 表单结束 –>
</div></div>
再看下余斗二次开发后的留言版各种页面显示:
留言版样式
审核提示
后台未审核留言
审核成功提示
删除留言提示
编辑回复留言
回复后的留言前端显示
非管理员模式下前端显示
至于样式,余斗就没有贴出来,如果需要的话,请点击《DedeCMS一个完整的留言簿开发模版》