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>
 |