Typecho 子评论加上At(@)

记录 | typecho

At演示
[At演示]

这个功能不是很难见到,但是在网上找到的大部分资料都是要改内核,改内核就算了,排版还会出一些问题,好巧不巧,今天找到一个用function就能做到的。

function.php里面加上:

//获取评论的锚点链接
function get_comment_at($coid)
{
    $db   = Typecho_Db::get();
    $prow = $db->fetchRow($db->select('parent,status')->from('table.comments')
        ->where('coid = ?', $coid));//当前评论
    $mail = "";
    $parent = @$prow['parent'];
    if ($parent != "0") {//子评论
        $arow = $db->fetchRow($db->select('author,status,mail')->from('table.comments')
            ->where('coid = ?', $parent));//查询该条评论的父评论的信息
        @$author = @$arow['author'];//作者名称
        $mail = @$arow['mail'];
        if(@$author && $arow['status'] == "approved"){//父评论作者存在且父评论已经审核通过
            if (@$prow['status'] == "waiting"){
                echo '<p class="commentReview">'._mt("(评论审核中)").'</p>';
            }
            echo '<a href="#comment-' . $parent . '">@' . $author . '</a>';
        }else{//父评论作者不存在或者父评论没有审核通过
            if (@$prow['status'] == "waiting"){
                echo '<p class="commentReview">'._mt("(评论审核中)").'</p>';
            }else{
                echo '';
            }

        }

    } else {//母评论,无需输出锚点链接
        if (@$prow['status'] == "waiting"){
            echo '<p class="commentReview">'._mt("(评论审核中)").'</p>';
        }else{
            echo '';
        }
    }


}

调用代码:

<?php $parentMail = get_comment_at($comments->coid)?><?php echo $parentMail;?>

代码参考自:https://owoii.com/archives/31.html

吴尼玛

computer loser

可能感兴趣的文章

Responses

  1. littleha

    你这个回复怎么乱掉了

      1. 吴尼玛

        没有乱吧,还能将就着看。

  2. littleha

    有更短的办法....

    /* 输出带回复对象的评论 */
    function get_comments_with_reply_author($obj, $autoLink = NULL, $noFollow = NULL){
    $options = Helper::options();
    $autoLink = $autoLink ? $autoLink : $options->commentsShowUrl;
    $noFollow = $noFollow ? $noFollow : $options->commentsUrlNofollow;
    $parent_id=$obj->parent;
    $content=dbwhere('comments','coid',$obj->coid,'text');
    //若无回复对象则返回评论文本
    if ($parent_id==0) {
    $result='

    '.$content.'

    ';
    echo $result;
    return;
    }
    $parent_name=dbwhere('comments','coid',$parent_id,'author');
    $get_tag='@'.$parent_name.'';
    $result='

    '.$get_tag.$content.'

    ';
    echo $result;
    }
    /* 简易数据查询(单字段查询单记录) */
    function dbwhere($tablename,$field_index,$field_index_data,$field_need){
    $db = Typecho_Db::get();
    $select = $db->select()->from('table.'.$tablename)->where($field_index.' = ?', $field_index_data);
    $result = $db->fetchAll($select);
    if($result){
    foreach($result as $val){
    $needval = $val[$field_need];
    return $needval;
    }
    }
    }

点击撰写评论