118 lines
6.5 KiB
PHP
118 lines
6.5 KiB
PHP
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
|
||
|
||
<?php function threadedComments($comments, $options) {
|
||
$commentClass = '';
|
||
if ($comments->levels > 0) $commentClass .= ' ml-5';
|
||
?>
|
||
<?php if ($comments->type == 'pingback' || $comments->type == 'traceback'){?>
|
||
<div id="<?php $comments->theId(); ?>">
|
||
<div class="card">
|
||
<div class="card-body">
|
||
<span class="font-weight-900"><?php $comments->author(); ?></span>
|
||
<br>
|
||
<span class="small"><?php $comments->date('F jS, Y'); ?> at <?php $comments->date('h:i a'); ?></span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<?php } else { ?>
|
||
<div id="<?php $comments->theId(); ?>" class="mt-3 mb-3<?php echo $commentClass; ?>">
|
||
<div class="d-flex align-items-center">
|
||
<?php $qq = str_replace('@qq.com', '', $comments->mail);
|
||
// 原计划如果是 QQ 邮箱并且没有 Gravatar 头像设置,则显示为 QQ 头像,
|
||
// 但是好像没法把 QQ 头像调用的 API 设置成 gravatar 的 default,返回 400 错误
|
||
// 只好采用 是 QQ 邮箱就显示 QQ 头像 的方案
|
||
if (strstr($comments->mail, "qq.com") && is_numeric($qq) && strlen($qq) < 11 && strlen($qq) > 4){
|
||
$avatarUrl = 'https://q3.qlogo.cn/g?b=qq&nk='.$qq.'&s=100';
|
||
} else {
|
||
$avatarUrl = __TYPECHO_GRAVATAR_PREFIX__;
|
||
if (!empty($comments->mail)) { $avatarUrl .= md5(strtolower(trim($comments->mail))); }
|
||
$avatarUrl .= '?s='. '64' . '&r=' . Helper::options()->commentsAvatarRating . '&d=' . Helper::options()->themeUrl.'/assets/visitor.png';
|
||
}
|
||
?>
|
||
<img class="avatar" src="<?php echo $avatarUrl; ?>" alt="<?php echo $comments->author; ?>" width="64" height="64" />
|
||
<div class="d-inline-block ml-2">
|
||
<span class="font-weight-900"><?php $comments->author(); ?></span>
|
||
<?php if ($comments->authorId == $comments->ownerId): ?>
|
||
<span class="badge badge-secondary ml-1 mr-1"><?php _e('博主') ?></span>
|
||
<?php endif; ?>
|
||
<?php if ($comments->status == 'waiting'): ?>
|
||
<span class="badge badge-warning ml-1 mr-1">
|
||
<i class="fas fa-ellipsis-h"></i>
|
||
<?php _e('等待审核') ?>
|
||
</span>
|
||
<?php endif; ?>
|
||
<?php showUserAgent($comments->agent); ?>
|
||
<span class="small"><?php showLocation($comments->ip); ?></span>
|
||
<br>
|
||
<span class="small"><?php $comments->date('F jS, Y'); ?> at <?php $comments->date('h:i a'); ?></span>
|
||
<span class="small ml-1 mr-1"><?php $comments->reply('<i class="fa fa-reply"></i> Reply'); ?><span>
|
||
</div>
|
||
</div>
|
||
<p><?php $comments->content(); ?></p>
|
||
<?php if ($comments->children): $comments->threadedComments($options); endif; ?>
|
||
</div>
|
||
<?php } ?>
|
||
<?php } ?>
|
||
|
||
<div id="comments">
|
||
<?php $this->comments()->to($comments); ?>
|
||
<?php if ($comments->have()): ?>
|
||
<hr>
|
||
<?php $comments->listComments(array('before'=>'','after'=>'')); ?>
|
||
<?php endif; ?>
|
||
|
||
<!-- 评论提交区域 -->
|
||
<?php if ($this->allow('comment')): ?>
|
||
<hr>
|
||
<?php if ($this->options->commentsNotice !='') { ?>
|
||
<div class="alert alert-primary alert-dismissible fade show shadow" role="alert">
|
||
<span class="alert-inner--icon"><i class="fas fa-exclamation-circle"></i></span>
|
||
<span class="alert-inner--text"><?php $this->options->commentsNotice(); ?></span>
|
||
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
|
||
<span aria-hidden="true">×</span>
|
||
</button>
|
||
</div>
|
||
<?php } ?>
|
||
<div id="<?php $this->respondId(); ?>" class="respond">
|
||
<div>
|
||
<?php $comments->cancelReply('<i class="fa fa-window-close"></i> 取消回复'); ?>
|
||
</div>
|
||
<h2 id="response"><?php _e('添加新评论'); ?></h2>
|
||
<form method="post" action="<?php $this->commentUrl(); ?>" id="comment-form" role="form">
|
||
<?php if ($this->user->hasLogin()): ?>
|
||
<p><?php _e('登录身份: '); ?>
|
||
<a href="<?php $this->options->profileUrl(); ?>"><?php $this->user->screenName(); ?></a> | <a href="<?php $this->options->logoutUrl(); ?>" title="Logout"><?php _e('退出'); ?> »</a>
|
||
</p>
|
||
<?php else: ?>
|
||
<div class="form-group">
|
||
<div class="row">
|
||
<div class="col-md-3 col-xs-12">
|
||
<input type="text" name="author" id="author" class="form-control" placeholder="Name" value="<?php $this->remember('author'); ?>" required />
|
||
</div>
|
||
<div class="col-md-3 col-xs-12">
|
||
<input type="email" name="mail" id="mail" class="form-control" placeholder="Email" value="<?php $this->remember('mail'); ?>"<?php if ($this->options->commentsRequireMail): ?> required<?php endif; ?> />
|
||
</div>
|
||
<div class="col-md-3 col-xs-12">
|
||
<input type="url" name="url" id="url" class="form-control" placeholder="Website" value="<?php $this->remember('url'); ?>"<?php if ($this->options->commentsRequireURL): ?> required<?php endif; ?> />
|
||
</div>
|
||
<div class="col-md-3 col-xs-12 align-self-center">
|
||
<div class="d-flex align-content-stretch">
|
||
<label class="custom-toggle mb-0">
|
||
<input type="checkbox" name="receiveMail" id="receiveMail" value="yes" checked />
|
||
<span class="custom-toggle-slider rounded-circle"></span>
|
||
</label>
|
||
<label for="receiveMail" class="mb-0 ml-2"><?php _e('接收邮件通知'); ?></label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<?php endif; ?>
|
||
<div class="form-group">
|
||
<textarea rows="8" cols="50" name="text" id="textarea" class="form-control" placeholder="Say something!" required ><?php $this->remember('text'); ?></textarea>
|
||
</div>
|
||
<button type="submit" class="btn btn-primary">Submit</button>
|
||
</form>
|
||
</div>
|
||
<?php endif; ?>
|
||
</div>
|