给Joe主题添加隐私评论功能(其他主题部分通用)

前言

方法非全部原创(不懂PHP),我只写了部分Js代码,思路和部分代码来自由小王先森 (xwsir.cn)基于Joe主题开发的Word主题
原文来自浅梦blog

教程开始

将下面这段代码插入评论区(请自行美化样式),一般放在提交评论的按钮前

<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值

思路来自小王先森 (xwsir.cn)的开源主题

原文来自浅梦blog

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瞳瞳too

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值