经常在各大论坛或新闻板块详情页面下边看到评论功能,当然不单单是直接发表评论内容那么简单,可以对别人的评论进行回复,别人又可以对你的回复再次评论或回复,如此反复,理论上可以说是没有休止,从技术角度分析很容易想到运用无限级分类技术存储数据...,运用递归获取评论层级结构数据,运用ajax实现评论页面交互,这里用thinkphp框架做个简单的demo练练手,为了简化流程这里第三级评论开始停止回复,当然只要在这个基础上稍作修改就可以实现无限回复功能...一、效果需求分析: 1.在头部可以直接发布一级评论,最新发表的评论显示在最上面,如下效果图 ? 2.对发表的评论可以回复,回复显示在上级评论下边,形成层级关系,如下效果图 ?...3.页面操作细节:点击某个评论的回复按钮时,显示回复文本输入框,同时其他评论的回复文本输入框消失,当再次点击该回复按钮时,该文本框消失 4.在最后一级评论(这里设置是第三级)关闭回复功能 5.即时显示评论总数...无限级分类实战————评论及回复功能</title <link rel="stylesheet" type="text/css" href="/Public/css/comment.css" rel=
-- 评论-回复-回复评论显示区域 --> <!...: null, //当前点击的评论或回复评论的用户昵称 now_reply_type: 0, //当前回复类型 默认为0 1为回复评论 2为回复回复 now_parent_id: 0,...//当前点击的评论或回复评论的所属评论id now_reply: 0, //当前点击的评论或回复评论的id //模拟用户信息 userinfo: { nickName...now_parent_id: pid, //当前点击的评论或回复评论所属id now_reply_type: type, //获取类型(1回复评论/2回复-回复评论)...//通过回复谁的评论id判断现在是评论还是回复 if(reply_id !
typecho 在评论时默认是没有 @ 评论人的功能,可以用代码加一下。...在 functions.php 中: /* * 评论回复时 @ 评论人 */ function get_comment_at($coid) { $db = Typecho_Db::get()..."){ if (@$prow['status'] == "waiting"){ echo '(评论审核中...))'; }else{ echo ''; } } } 然后在 comments.php 中输出评论内容代码的前面加上: coid)?> ▼代码所示 ▼效果图
第一步屏蔽默认评论js 将header.php中的header(); ?>改为header('commentReply='); ?...中的取消回复的按钮 第四步 将回复按钮替换为回复与取消按钮 如果你的模板重构过评论列表,那么将回复按钮处的代码换成为下面代码即可 theId(); ?> text-muted comment-reply-link">reply('回复'); ?...> 如果你的模板没有重构过评论列表,比如默认模板,建议学习下typecho的自定义评论列表的文档 第五步 重构样式 将下面的css加入到模板css中即可 #cancel-comment-reply-link
首先声明一下,我自己的项目不会这么做的,大家应该都没有类似的场景出现,我自己准备做一级评论对应多个回复的模式,不会有递归的方式。 ok,开始正文。...当然还有稍微复杂的类似bbs的有限评论: ok,接下来探讨一下我们要说的无限极的设计思路。...接下来,我们不能直接把这样的list给前端,因为要考虑到分页的情况,而我们根本不知道每一条主体评论的层级深度。 于是现在出现了两种做法:1.先筛选出几条主体评论,然后依次用ajax取出下面的回复。...通过递归直接把主体评论与下面对应的回复返回给前端,数据结构如下: 这样前端在展示的时候也可以使用递归(我不会),或者另一种基础的方式,比如我新增一个字段给出每条主体评论的回复层级深度,这样前端使用 foreach...php /** * Author huaixiu.zhen * http://litblc.com * User: litblc * Date: 2018/3/20 * Time: 15:14
回复树状评论(嵌套)URL ---- 添加回复评论表单weburl,autor和email原本就有,所以不做改动。但是分两种情况:登录、不登录。...\" value=\"\" /> "; 到这里,评论表单新增...weburl" 标识,当然也可以使用其他字符,只要不与其他变量冲突就行--> 已被隐藏,你必须登录后查看此内容.请 登录 或 注册 最后安装 Guest_url 插件获取weburl字段值 ,到这里 “回复树状...(嵌套)评论URL” 完成了
最近工作需要做一个评论功能,除了展示评论之外,还需要展示评论回复,评论的回复的回复,这里就用到了递归实现评论的多级回复。...评论实体 数据库存储字段:id 评论id、parent_id 回复评论id、message 消息。其中如果评论不是回复评论,parent_id 为-1。...*/ private List children = new ArrayList(); } 添加非回复评论 非回复评论的parent_id为-1,先找到非回复评论...遍历每条非回复评论,递归添加回复评论: for(ViewComment viewComment : viewCommentList) { add(viewComment,commentList...非回复评论id匹配到评论的parentId,添加到该评论的children列表中。 递归调用。
博客一直在用 Typecho 自带的评论,但常常会遇到这种让本博主十分蛋疼的情况: ? 于是我在评论设置把回复层数改成了2层 ?...这样看起来舒服多了,但第二层的评论却没有回复按钮,当我与访客回复多几句的时候访客没注意到上一层的回复按钮,然后就重新开楼回复了。 ?...经过一番观察发现,把负责评论渲染的类 /var/Widget/Comments/Archive.php 的 reply 方法(大概在472行)的 if 判断中的 !...$this->isTopLevel 条件去掉,评论右下角的回复的链接就显示出来了 ?
很多站长都很好奇明月博客的评论回复都是“秒回复”的速度是如何实现的,今天明月就给大家分享一下,其实想实现“秒回复”博客评论并不复杂,原理很简单就是借助手机上的 WordPress 客户端和邮箱客户端来实现的...,邮箱客户端主要是接受博客站点评论提醒的,WordPress 客户端主要是方便及时的回复、修改、删除、屏蔽评论的。...这样在手机上有了 WordPress 手机客户端和 QQ 邮箱客户端后,就可以实现 WordPress 博客站点评论的秒收和秒回复了,开启 QQ 邮箱客户端在手机上邮件提醒通知就可以不错过每一个博客站点评论的提醒...,然后迅速的在手机 WordPress 客户端“评论”里直接回复即可,甚至通过 WordPress 客户端修改文章、编辑文章、发布文章都是很方便的,只要你喜欢手机端操作的体验就可以。...有关 WordPress 站点评论重要性的文章: 『百度开始在搜索结果中展示站点社交内容——评论数量』 『还在给你的博客站点评论设置障碍的注意了!』 『再说说博客评论这些事儿!』
一、摘要 拓展 django 官方的评论库,为评论提供无限层级的支持。...点击测试,进入评论页面 ? 输入表单数据,会跳转页面 http://example.com/posts/1#c1 重新访问首页,点击测试 在提交按钮下面,就会显示评论。 ?...点击reply,回复一下 ? 再次返回首页,点击测试,评论效果如下: ? 点击2楼后面的reply,回复一下 ? 再次返回首页,点击测试,评论效果如下: ? 回复3楼 ? 4级评论如下: ?...还可以再次回复,这里就不演示了。 django_mptt_comments_mpttcomment 表记录了评论信息 ? templates 是模板目录,可以根据需要,将页面调整的好看一些。
可能会有:①只可以进行评论,不可以回复,②既可以进行评论,也可以进行回复,然后在这个基础上可能会增加一些额外的功能,比如评论的折叠,审核,优选等。...对于本项目,设计的是,既可以评论,也可以进行回复,评论和回复分开存储。在显示上,评论和回复显示的位置不同,回复相较于评论向右靠一些,这样,看起来比较舒适,当然也可以设置成其他的样式。...评论表主要保存对文章或者回答的评论,回复表保存对每一条评论的回复。...评论表(comment)如下图:主要包括了:评论ID(作为回复表的主键),回答(文章)ID,评论者ID,评论内容,点赞数,评论时间,审核状态 评论回复表(comment_reply)如下图:...主要包括了:评论ID,用户ID,被回复人ID,回复内容,点赞数,回复时间。
在上一篇文章《 免插件仅代码实现WordPress评论回复邮件 》中Jeff 提供了三种回复邮件样式类型。在你将需要的类型实现后,如果去测试一下,你会发现邮件的样式不怎么好看,甚至是丑陋的。...在开始之前,让Jeff给出一个示例(你可以给我评论,如果我回复,你就会收到这类邮件): 您在 [DeveWork.com] 上的留言有回复啦! 评论人, 您好!...您在《WordPress评论回复邮件样式美化教程》的留言: hello Jeff 给你的回复: 这个是演示效果 你可以点击查看完整内容 欢迎再度光临DeveWork.com (此邮件由系统自动发出, 请勿回复...本站目前使用的评论回复邮件就与上面的差不多。下面直接给出我使用的代码吧,你可以个性化一下,这里就不延伸了。...跟《 免插件仅代码实现WordPress评论回复邮件 》一样,在funtions.php文件的末尾最后一个 ?
WordPress评论在被其他人(包含管理员)评论时,默认是不会发送邮件通知原评论的作者的,这也就意味着如果我们对某一条用户评论进行评论时(这是一个讨论的场景),原始评论的作者将无法得知我们已经对他的评论做出了回复...,一直要等到该用户再次阅读这篇文章并查看评论区时才有可能看到回复信息,这样我们的评论区就真的变了死的留言板,而我们更希望他是一个活的,可以供大家讨论的讨论区,这就需要我们在作出回复时,原评论作者能够及时的了解到自己的留言有了新的动态...,这也是评论回复邮件通知的最重要的作用。...该方法转载自zww.me,这版本的评论回复通知是支持嵌套和@用户方式的。...主题在评论提交按钮下方提供了一个复选框(参考方法二自动添加),使得该方法支持让用户选择是否接收评论回复通知;为了防止垃圾邮件侵扰用户,该方法增加了评论需要是审核通过后才发送邮件通知。
基于emlog开发的一款回复评论插件,欢迎使用,没有邮件也可以看到实时评论。...页面) 绑定:点击「微信推送」,扫码关注同时即可完成绑定 发消息:往 http://sc.ftqq.com/SCKEY.send 发GET请求,就可以在微信里收到消息啦 特征: 评论通过绑定的微信号提醒...管理员的评论不提醒. 微语回复提醒没做.消息没有分隔符,没有段落,没有标点,是推送第三方过滤了. 需要通过第三方,获取一个KEY.不敢保证稳定性。 微信提醒
php /** +------------------------------------------------ 通用的树型类 +---------------------------------
评论回复后,自动发一封邮件提醒评论人,是提高用户体验的一大举措。今天抽空研究了一下邮件回复,根据自己的需要,选择一种自己需要的代码,添加在主题的 functions.php 文件的 最后一个 ?...> 前面即可 让访客自己选择是否邮件通知,在评论框下方显示一个勾选框,让评论人自己决定是否接收邮件通知 function comment_mail_notify($comment_id) { $admin_notify...= '1'; // admin 要不要收回复通知 ( '1'=要 ; '0'=不要 ) $admin_email = get_bloginfo ('admin_email'); // $admin_email... (此邮件由系统自动发送,请勿回复。)...原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:WordPress添加评论回复邮件提醒通知功能
评论栏快捷打卡/一言回复 ---- 将下列代码加入到子主题 child.js 中 或者加上script标签放到后台统计设置里 $(function(){$('.com-form-button-l').
typecho评论的回复与回复取消按钮函数调用如下: 回复按钮:reply(); ?> 取消回复按钮:cancelReply(); ?...> 输出的结果大概是这样: 回复按钮:回复 取消回复按钮:reply('回复'); ?> cancelReply('取消'); ?> 效果如下图: Typecho评论回复按钮文字自定义.gif
博主需要经常和访客互动,博主的回复也作为一条评论在最新评论处显示,这样一来,如果博主如果一次回复好几条评论留言,那么在最新评论的地方显示的都是自己的评论,这样不太好。...以我当前的emlog5.3.1版本为例: 打开include/lib目录下的cache.php文件(这是个缓存函数文件)在其中找到以下代码: 我的是在179行,如下 $query = $this...='阿珏' ORDER BY date DESC LIMIT 0, $index_comnum"); 提示:这是一段执行SQL语句的PHP代码,条件是检测评论用户的用户名是不是博主的用户名,是则不显示该评论到最新评论列表...=‘阿珏’,毕竟我自己回复是不带邮箱的,所以只能检测用户名了,当然 不要冒充我) 最后保存文件后,登陆emlog的后台更新下缓存,刷新网页就可以看见效果了。...原文地址《实现 Emlog 最新评论列表不显示博主的评论回复》
本文实例为大家分享了Android实现朋友圈评论回复列表的具体代码,供大家参考,具体内容如下 Android实现朋友圈评论回复列表 Android实现朋友圈点赞列表 Android实现朋友圈多图显示功能...{ super(context, attrs, defStyleAttr); setOrientation(VERTICAL); this.mContext = context; } /** * 设置评论列表信息...item = mDatas.get(position); UserBean replyUser = item.getReplyUser(); boolean hasReply = false; // 是否有回复...); if (hasReply) { builder.append(setClickableSpan(name, item.getCommentsUser())); builder.append(" 回复...implements Serializable { private int commentsId; private String content; private UserBean replyUser; // 回复人信息
领取专属 10元无门槛券
手把手带您无忧上云