目前akcms没有留言本功能,本文是将文章评论做成留言本功能;文章的评论目前只有username
,message
两个字段,一般留言本还需要增加比如电话,邮箱等字段,这里就需要增加字段。
第一步:先确定你留言所需字段,比如我就需要: 姓名、电话号码、邮箱、内容四个字段
第二步:打开您的mysql数据库,评论表ak_comments
,发现目前有字段username message
和我上面的 姓名 内容 对应,我需要的电话号码 邮箱 没得。于是手动建立。如下图:
Update:2016-03-20
phone的字段类型不要再选择上图,在新akcms版本中不行,可以选个text类型。
.
第三步:打开fore/comment.php
,如下图,红框部分就是我根据新增字段 对应添加的内容:
第四步:在你的前台模板新建一个,guestbook.htm
内容如下,注意js、html代码中涉及到字段:
<!DOCTYPE html>
<html lang="zh-CN">
<meta charset="gbk">
<head>
<title><{$title}></title>
<script language="javascript" src="http://pc1.gtimg.com/js/jquery-1.4.4.min.js"></script>
<script>
function submitcontent() {
var username = $("#username").val();
var phone = $("#phone").val();
var email = $("#email").val();
var comment = $("#comment").val();
$.ajax({
url: "<{$home}>/akcms_comment.php",
type: 'POST',
dataType: 'text',
data: { itemid:<{$id}>,
username: username,
phone: phone,
email: email,
comment: comment
},
timeout: 5000,
error: function () {
alert('Error');
},
success: function (str) {
if (str == "0") { alert("您的留言已经成功提交!");
window.location.reload();
}
else {
alert("非常抱歉,出现错误,错误号:" + str);
}
}
});
}
</script>
</head>
<body>
<table border="0" cellspacing="0" cellpadding="5">
<{getcomments bandindex="1" page=$page itemid=$id num="2" includesub="1"
template="
<tr>
<td>字段内容的读取:</td>
<td><p>[username]</p><p>[phone]</p><p>[email]</p><p>[message]</p></td>
</tr>
"}>
</table>
<table border="0" cellspacing="0" cellpadding="5">
<tr>
<td width="100">您的姓名:</td>
<td><input type="text" id="username" name="username" /></td>
</tr>
<tr>
<td width="100">电话号码:</td>
<td><input type="text" id="phone" name="phone" /></td>
</tr>
<tr>
<td width="100">您的邮箱:</td>
<td><input type="text" id="email" name="email" /></td>
</tr>
<tr>
<td width="100">留言内容:</td>
<td><textarea id="comment" name="comment"></textarea></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="button" value="发表留言" onclick="submitcontent();" /></td>
</tr>
</table>
</body>
</html>
第五步:在你的后台“页面” 新建一个“在线留言”,对应模板guestbook.htm
点击预览就可以看到留言本地址了。
到此,基本就实现了你想要什么字段,就如此这般添加对应的字段,是在评论表里面添加,所以这些字段也是可以用在文章的评论里的。刚刚新建页面“在线留言”实际上就是为了获得一个文章id吧,我们把在这个页面的全部评论就当成了全站的留言,反正用户不晓得。
第六步:在后台的评论管理页面,如何显示这些新增字段。
打开页面admincp.php
,搜索if(!in_array($comment['itemid'], $items)) $items[] = $comment['itemid']
,这段代码很乱。这句{$lan['name']}:".htmlspecialchars($comment['username'])." |
后面添加 :
电话号码:".htmlspecialchars($comment['phone'])." |
电子邮箱:".htmlspecialchars($comment['email'])." |
就把新增的字段在后台添加了。
以上提供的是一个思路。不过很遗憾,目前ak评论不能分页,我曾经付费让akcms开发者馒头写了分页,但那分页代码我不知道如何分离出来。目前akcms已经升级到5.0.3版本,根据馒头说,他会将评论作为插件独立出来,到时候应该有个完善的解决方案。
**Update by 2013.04.21
若按照以上方法制作出的留言本在提交留言时报错,请检查下你的设置:**