给Joe主题添加隐私评论功能(其他主题部分通用)
功能 添加 部分 主题 通用 其他 评论 隐私
2023-06-13 09:17:21 时间
前言
方法非全部原创(不懂PHP),我只写了部分Js代码,思路和部分代码来自由小王先森 (xwsir.cn)基于Joe主题开发的Word主题
教程开始
- 将下面这段代码插入评论区(请自行美化样式),一般放在提交评论的按钮前
<input type="checkbox" name="is-private" id="PrivateComments"><label for="PrivateComments" class="PrivateCommentsLable">
代码位置
Joe主题放在在public\comment.php
下图位置前面
其他主题可以在comment.php搜索你主题提交评论按钮的汉字,并放入前方
- 插入JS,将下面这段代码插入
comment.php
最下方
<script>document.addEventListener('DOMContentLoaded',()=>{var groupInfo='<?php echo $groupUserInfo ?>';if(groupInfo!='administrator'){$(".comment_operation").css("display","none")}var comments4Reception='<?php $this->options->Comments4Reception() ?>';if(!comments4Reception||comments4Reception=='off'){$(".comment_operation").css("display","none")}});$('.comment_btn_operation').click(function(){var type=$(this).data('type');var coid=$(this).data('coid');$('#comment_form_operation').append('<input type="hidden" name="type" value="'+type+'" />');$('#comment_form_operation').append('<input type="hidden" name="coid" value="'+coid+'" />');$('#comment_form_operation').submit()});document.getElementById('PrivateComments').addEventListener('click',function(){var commentField=document.getElementById('comment');if(document.getElementById('PrivateComments').checked){Qmsg.info('已开启密语');var currentValue=commentField.value;commentField.value='密语# '+currentValue;commentField.addEventListener('input',preventDeletingText)}else{Qmsg.info('已关闭密语');commentField.value=commentField.value.replace('密语# ','');commentField.removeEventListener('input',preventDeletingText)}});function preventDeletingText(){var commentField=document.getElementById('comment');if(!commentField.value.startsWith('密语# ')){commentField.value='密语# '+commentField.value.substring(3)}}</script>
- 修改评论输出语句(以Joe主题为例)
在
comment.php
找到(其他主题请找到对应的实现相关功能的代码并修改,不会可以再评论区留言)
<?php _parseCommentReply($comments->content); ?igaiwei
并修改为
<?php _getParentReply($comments->parent) ?>
<?php
$db = Typecho_Db::get();
$smyk = $db->fetchRow($db->select('mail')->from('table.comments')->where('coid = ?', $comments->parent)->limit(1));
$smhf = $comments->mail;
$user = Typecho_Widget::widget('Widget_User');
if (strpos($comments->content, '密语# ') == true) {
$ykmail = Typecho_Cookie::get('__typecho_remember_mail');
if ($smhf == $user->mail or $smhf == $ykmail or $user->group == 'administrator' or $smyk['mail'] == $ykmail and !empty($smyk['mail'])) {
_parseCommentReply(str_replace('密语# ', '', $comments->content));
} else {
echo '<div class="secret">此条为密语,发布者可见</div>';
}
} else {
_parseCommentReply($comments->content);
}
?>
- 修改文本输入框,给文本框添加
id="comment"
,
如果你的主题输入框已有id值,就将js中的'comment'
修改为主题的id值
注意 如果实在不会改第三步可以去购买泽泽的隐私评论插件,然后将第2步的Js代码中密语#(包括空格)修改为私密 或者使用我已经改好的Joe主题详细信息请查看
Joe主题懒人版是基于Joe主题再续前缘版修改而来(其实就是把百度上所能找到的大部分美化功能添加进去了),代码改的...
思路来自小王先森 (xwsir.cn)的开源主题
相关文章
- 添加WordPress开启关闭侧边栏功能
- 为wordpress增加function模板应用-以后不用修改模板函数添加扩展功能
- 为罗技鼠标自定义按键添加显示桌面功能
- 视频融合平台EasyCVR如何添加大华设备的云台功能?
- 『原创』『教程』给兰空图床添加一个后台获取Tonken功能
- 在wordpress开发的网站中添加在线客服咨询功能代码教程
- WordPress 站点管理员邮箱验证功能介绍和屏蔽
- 苹果在iOS 15里添加两步验证器相关功能 支持云同步而且可以自动粘贴验证码
- 迅雷9.1.30.714正式版 新增磁链补全和添加到下载合集功能
- Oracle数据库如何添加自增功能(oracle添加自增)
- 如何运用Oracle来发挥最大功能(oracle 使用功能吗)
- Oracle中主键和唯一键的功能比较(oracle主键和唯一键)
- Oracle实现游标功能的新思路(oracle 代替游标)
- Redis有无持久化功能(redis默认是否持久化)
- Redis在网站中的卓越应用实现更好的性能(redis适合做什么功能)
- 阿里云盘开始测试链接转存(即离线下载)功能 添加链接后服务器自动下载
- 为T-SQL添加intellisense功能
- 没有申请域名代理,就不能使用检测功能吗?
- js实现权限树的更新权限时的全选全消功能
- JS自定义功能函数实现动态添加网址参数修改网址参数值
- 使用php判断服务器是否支持Gzip压缩功能