/templets/default/article_article_view.htm
。,,2. 在评论列表模板文件中,找到以下代码:,,“html,{dede:field name='aid'/},
`,,将其替换为:,,
`html,,,{dede:field name='username' function='htmlspecialchars'/},{dede:field name='inputtime' function='MyDate("Ymd H:i",@me)'/},,, {dede:field name='content'/},,,
`,,3. 在DEDECMS的CSS文件中,添加以下样式:,,
`css,.commentitem {, padding: 10px;, borderbottom: 1px solid #eee;,},,.commentuser {, fontsize: 14px;, color: #333;,},,.commentusername {, fontweight: bold;,},,.commenttime {, marginleft: 10px;, color: #999;,},,.commentcontent {, fontsize: 12px;, color: #666;, margintop: 5px;,},
`,,4. 在DEDECMS的JavaScript文件中,添加以下代码:,,
`javascript,// 此处可以添加一些针对评论的交互效果,如展开/收起回复等,
“,,5. 保存修改后的模板文件和CSS文件,然后重新生成页面,即可看到仿163评论效果。本文将详细介绍如何使用DEDECMS仿制163新闻评论效果,包括步骤和代码示例,通过以下内容,您将能够了解如何修改现有的DEDECMS模板以实现与163新闻相似的评论功能。
准备工作
在开始之前,请确保您已经安装了DEDECMS并拥有基本的操作权限,还需要具备一定的HTML、CSS和PHP知识。
第一步:分析163新闻评论效果
我们需要观察163新闻的评论效果,其主要特点包括:
1、用户头像显示
2、用户名及时间戳显示
3、评论内容显示
4、回复按钮及功能
5、分页显示评论
第二步:修改模板文件
DEDECMS的模板文件通常位于/templets/default/
目录下,我们主要需要修改以下几个文件:
article_article.htm
comment_ajax.php
comment_ajax_save.php
1. 修改article_article.htm
打开/templets/default/article_article.htm
文件,找到评论区域的位置,在该位置插入以下代码:
{dede:field name='id' function='GetCommend(@me)'}
这个标签会调用自定义函数GetCommend
,用于获取和展示评论内容。
2. 创建自定义函数
在/include/arc.archives.class.php
文件中添加自定义函数GetCommend
:
function GetCommend($id) { global $dsql; $nr = $this>TypeLink>TypeInfos['co_content']; // 获取文章内容模型信息 $row = $dsql>GetOne("SELECT count(*) as total FROM #@__comment where aid=$id"); if ($row['total'] > 0) { $replys = $dsql>GetAll("SELECT * FROM #@__comment where aid=$id order by id desc"); foreach ($replys as $reply) { $user = $dsql>GetOne("SELECT * FROM #@__member where mid=" . $reply['uid']); if ($user) { $avatar = $user['avatar'] ? '<img src="' . $user['avatar'] . '" alt="" class="useravatar">' : ''; $output .= '<div class="commentitem">' . $avatar . '<span class="username">' . $user['username'] . '</span><span class="time">' . date('Ymd H:i:s', $reply['inputtime']) . '</span><p>' . $reply['message'] . '</p></div>'; } } } else { $output .= '<p>暂无评论</p>'; } return $output; }
3. 修改comment_ajax.php
打开/plus/comment/ajax.php
文件,找到处理评论请求的部分,添加对评论内容的保存逻辑:
if ($dopost == 'addcomment') { $aid = $_POST['aid']; $message = addslashes($_POST['message']); $uid = session_is_registered('mid'); // 判断用户是否登录 if ($uid) { $dsql>ExecuteNoneQuery("INSERT INTO #@__comment (aid, uid, message, inputtime) values ('$aid', '$uid', '$message', '" . time() . "')"); echo '{"status":1, "msg":"评论成功!"}'; } else { echo '{"status":0, "msg":"请先登录!"}'; } }
4. 修改comment_ajax_save.php
打开/plus/comment/ajax_save.php
文件,找到处理评论保存请求的部分,添加对评论的验证和保存逻辑:
function saveComment() { $aid = $_POST['aid']; $message = addslashes($_POST['message']); $uid = session_is_registered('mid'); // 判断用户是否登录 if ($uid) { $dsql>ExecuteNoneQuery("INSERT INTO #@__comment (aid, uid, message, inputtime) values ('$aid', '$uid', '$message', '" . time() . "')"); echo '{"status":1, "msg":"评论成功!"}'; } else { echo '{"status":0, "msg":"请先登录!"}'; } }
第三步:添加样式
为了使评论效果更加美观,可以在/templets/default/style/article_view.css
中添加以下CSS样式:
.useravatar { width: 48px; height: 48px; borderradius: 50%; } .username { fontweight: bold; marginleft: 10px; } .time { fontsize: 0.9em; color: #999; marginleft: 10px; } .commentitem { padding: 10px; borderbottom: 1px solid #eee; }
第四步:测试与调试
完成以上步骤后,保存所有更改并在浏览器中刷新页面,检查评论功能是否正常工作,如果遇到任何问题,可以查看控制台日志进行调试。
FAQs
以下是一些常见问题及其解答:
Q1: 为什么评论无法保存?
A1: 请确保用户已登录并且拥有评论权限,检查comment_ajax.php
和comment_ajax_save.php
中的数据库插入语句是否正确执行,确认表单提交的数据格式正确。
Q2: 评论样式不生效怎么办?
A2: 确保 CSS 文件路径正确且样式规则没有冲突,可以尝试清除浏览器缓存或使用隐身模式重新加载页面,以确保样式更新生效。
步骤 | 说明 | 代码示例 |
1 | 确定仿163评论效果的样式和结构 | 查看163评论页面的HTML和CSS代码,了解其结构和样式 |
2 | 修改DEDECMS评论模板文件 | 找到DEDECMS的评论模板文件(通常是comment.html ),开始修改 |
3 | 添加评论列表结构 | 在模板中添加163评论列表的结构,例如使用
|
4 | 添加评论项结构 | 在模板中添加单个评论的结构,例如使用
|
5 | 修改评论显示样式 | 根据需要修改评论项的样式,参考163评论页面的CSS |
6 | 添加评论内容显示 | 在评论项中添加评论内容显示,例如使用
|
7 | 添加评论者信息显示 | 在评论项中添加评论者信息显示,例如用户名、时间等 |
8 | 添加评论回复功能 | 在评论项中添加回复按钮,点击后显示回复框 |
9 | 修改回复模板 | 找到DEDECMS的回复模板文件(通常是reply.html ),进行修改 |
10 | 添加回复列表结构 | 在回复模板中添加回复列表的结构,例如使用
|
11 | 添加回复项结构 | 在回复模板中添加单个回复的结构,例如使用
|
12 | 修改回复显示样式 | 根据需要修改回复项的样式,参考163评论页面的CSS |
13 | 添加回复内容显示 | 在回复项中添加回复内容显示,例如使用
|
14 | 添加回复者信息显示 | 在回复项中添加回复者信息显示,例如用户名、时间等 |
15 | 保存并预览 | 保存模板修改,预览评论效果,确保符合预期 |
16 | 优化和调整 | 根据预览效果,对样式和结构进行优化和调整,直至满意 |
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1200430.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复