实用教程

Typecho设置评论可见

用途:

防伸手党

操作方法:

1.将post.php中的<?php $this->content(); ?>换成

<?php
$db = Typecho_Db::get();
$sql = $db->select()->from('table.comments')
    ->where('cid = ?',$this->cid)
    ->where('mail = ?', $this->remember('mail',true))
    ->limit(1);
$result = $db->fetchAll($sql);
if($this->user->hasLogin() || $result) {
    $content = preg_replace("/\[hide\](.*?)\[\/hide\]/sm",'<div class="reply2view"><b>本贴隐藏的内容:</b><br><font color="#dc143c">$1</font></div>',$this->content);
}
else{
    $content = preg_replace("/\[hide\](.*?)\[\/hide\]/sm",'<div class="reply2view">此处内容已隐藏,<a href="#textarea">回复</a>可见</div>',$this->content);
}
echo $content 
?>

代码中的<a href="#textarea">回复</a>可见,把textarea换成评论框id,不懂就直接把a标签删除,把<a href="#textarea">回复</a>可见换成回复可见
2.解决缩略内容和feed暴露问题。
解决缩略内容和feed暴露问题。

functions.php文件末尾加入如下代码

Typecho_Plugin::factory('Widget_Abstract_Contents')->excerptEx = array('myyodux','one');
        Typecho_Plugin::factory('Widget_Abstract_Contents')->contentEx = array('myyodux','one');
        class myyodux {
            public static function one($con,$obj,$text)
            {
              $text = empty($text)?$con:$text;
              if(!$obj->is('single')){
              $text = preg_replace("/\[hide\](.*?)\[\/hide\]/sm",'',$text);
              }         
                       return $text;
        }
        }

就是用插件接口,在缩略内容输出之前,隐藏掉或者替换掉回复可见内容,同时使用if判断,来针对非single页面进行隐藏。

3.css参考样式
可以放在post.php文件开头

<style>
.reply2view {
    background: #f8f8f8;
    padding: 3px;
    position: relative;   
}
</style>

4. 使用方法

此处内容已隐藏,回复可见

微信扫一扫,向我赞赏

微信扫一扫,向我赞赏

微信扫一扫,向我赞赏

支付宝扫一扫,向我赞赏

QQ扫一扫,向我赞赏

QQ扫一扫,向我赞赏

回复

  1. 666
    QQ 9 L

    我这个Ari模板没法用

This is just a placeholder img.