php 回复可见,Typecho三步完美实现回复可见功能

特别声明:本文为原创,可自由转载、引用,但需署名作者且注明文章出处,如有侵权请联系!

想在Typecho完美实现回复可见功能,在网上看了下,有很多教程,结合我的主题修改成功了,将我的方法分享给大家,希望对你有所帮助。

以下文件都在当前主题目录下修改,文件路径为:网站根目录 /usr/themes/{主题名}。

第一步

修改post.php文件找到"<?php $this->content(); ?>"<?php $this->content(); ?>替换为以下代码:<?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",'

$1
',$content);

}

else{

$content = preg_replace("/\[hide\](.*?)\[\/hide\]/sm",'

此处内容回复可见,请先 回复
',$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;

}

}

第三步

添加样式

找到当前主题样式文件: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;

}

c61a95a93cd65567f94b666a33a947c8.png

使用

在写文章需要隐藏部分内容时用以下写法:

一定要去掉下面代码中的 @才可以用,这里加@是防止被改为隐藏内容[@hide]要隐藏的内容[/hide]

有惊喜哦!

此处内容回复可见,请先回复。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值