Typecho三步实现文章回复可见内容方法

  筱晗's
2021-04-18 / 0 评论 / 34 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年04月18日,已超过188天没有更新,若内容或图片失效,请留言反馈。

ff8b7dd7705e1ac3fd8ac7cdaeeada50.jpg
今天给大家带来实现Typecho程序发布文章,需要恢复才能显示隐藏的内容,结合我自己的主题分享给大家:
以下文件都在当前主题目录下修改, /usr/themes/主题目录/

第一步:打开 post.php文件

找到输出文章内容的标签

<?php $this->content(); ?>

直接ctrl+F搜索关键字,然后替换为

<?php echo parse_content($this->content,$this->cid,$this->remember('mail',true),$this->user->hasLogin()); ?>

第二步:打开 functions.php文件

添加以下代码

/**
* 回复可见所需功能代码*
* @access public
* @param string $content 文章内容
* @return string
*/
function parse_content($content,$cid,$mail,$login){
$db = Typecho_Db::get();
$sql = $db->select()->from('table.comments')
->where('cid = ?',$cid)
->where('mail = ?', $mail)
->where('status = ?', 'approved')
->limit(1);
$result = $db->fetchAll($sql);
if($login || $result) {
    $content = preg_replace("/\[hide\](.*?)\[\/hide\]/sm",'<div 
class="reply2view">$1</div>',$content);
}
else{
    $content = preg_replace("/\[hide\](.*?)\[\/hide\]/sm",'<div class="reply2view">此处内容回复可见,请 
先<a href="#respond-post-'. $cid .'">回复</a>。</div>',$content);
}
return $content;
}
Typecho_Plugin::factory('Widget_Abstract_Contents')->excerptEx = array('moleft','one');
Typecho_Plugin::factory('Widget_Abstract_Contents')->contentEx = array('moleft','one');
class moleft {
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;
}
}

第三步:添加css样式

在主题的style.css文件中添加以下样式(仅供参考)

.reply2view {
background-color:rgb(255,255,255,0.3);
border-radius:5px;
border:1px dashed #888888;
padding:10px 10px 10px 40px;
position:relative;

[hide]此处为回复可见测试隐藏内容![/hide]
好了教程就到这里了,如果您有好的教程欢迎投稿到本站,雪花Blog文章收录规则

0

评论 (0)

取消