用过Github评论的都知道,回复会顺带主评论内容,这样相较于博客的@某某用户、或回复某某用户要直观许多,不需要上下文联系.
图例:
其实Typecho也可以实现这样的效果,深入研究也可达到多层嵌套的效果.
图例:
实现方法如下:
在主题的Function.php
中加入如下,之后,在主题评论列表回复处增加<?php getCommentHF($comments->coid)?>
,即可实现
function getCommentHF($coid){
$parser = new HyperDown(); //Typecho内置函数 将md转为html
$db = Typecho_Db::get();
$prow = $db->fetchRow($db->select('parent')
->from('table.comments')
->where('coid = ? AND status = ?', $coid, 'approved'));
$parent = $prow['parent'];
if ($parent != "0") {
$arow = $db->fetchRow($db->select('text','author','status')
->from('table.comments')
->where('coid = ?', $parent));
$text = $arow['text'];
$author = $arow['author'];
$status = $arow['status'];
if($author){
if($status=='approved'){
$href = '<blockquote><a class="at" uid="'.$parent.'" onclick="scrollt(\'comment-'.$parent.'\'); return false;">@'.$author.'</a><br>'.$parser->makeHtml($text).'</blockquote>';;
}else if($status=='waiting'){
$href = '<a>评论审核中···</a>';
}
}
echo $href;
} else {
echo "";
}
}
拓展:HyperDown()
是typecho的内置MD解析为html函数
函数使用方法:
$parser = new HyperDown();
$parser->makeHtml($text);
版权属于:Kiosr
本文链接:https://blog.zezeshe.com/archives/typecho-replies-by-imitating-github.html
本站未注明转载的文章均为原创,并采用
CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!
blockquote > p DOM超出字数...代替,该怎么实现呢?
大佬,我是刚从WordPress转的Typecho,想问下是否有私密评论的插件额,就是提交评论前勾选下提交后只有评论人和博主可见,有这样的插件么,或者是Typecho可做这样的功能么,可有偿,谢谢~
有偿的话可以联系我
QQ485868654
对了。这玩意弄完之后的评论显示顺序...是子评论永远新评论在最上面还是永远在父级评论的下面...
我去 厉害了我的泽
等有机会就去应用一下
话说你这边用了吗qwq
这篇文章是Kiosr写的
我觉得这样搞蛮鸡肋的,如你截图所示,一个评论出现了两次,看着重复。不如 Flarum 那种在 @ 上做文章的方式更好,我主题也有相关的应用方式
确实看着重复挺难受的,我也重写了评论输出,去掉了子评论层级,然后就舒服一些了,单纯的@如果一层内回复过多,就会看着很晕,看不太出到底回复的哪一条,所以我才做了这此方法