这2天迁移了一下我的博客网站,非常感觉宁兄分享的echo模板,在搭建好网站之后,稍微研究了一下,写了一个脚本将之前的数据全部导入到新的网站上了。
| 今天对模板做了一个小的调整。
- 增加了获取评论数最多的10篇文章。
- 增加了获取最新10条评论,简单的写了一下样式,喜欢的可以复制。
以下是实现方法
functions.php文件增加一个获取评论数最多文章的方法:
function getHotComments($limit = 9){
$db = Typecho_Db::get();
$result = $db->fetchAll($db->select()->from('table.contents')
->where('status = ?','publish')
->where('type = ?', 'post')
->where('created <= unix_timestamp(now())', 'post')
->limit($limit)
->order('commentsNum', Typecho_Db::SORT_DESC)
);
if($result){
$style1 = "padding:0 5px; background-color:red;text-align:center; border-radius:50%;color:#FFFFFF";
$style2 = "padding:0 5px; background-color:#CCCCCC;text-align:center; border-radius:50%;color:#FFFFFF";
foreach($result as $key => $val){
$val = Typecho_Widget::widget('Widget_Abstract_Contents')->push($val);
$post_title = htmlspecialchars($val['title']);
$permalink = $val['permalink'];
if($key < 3){
echo '<li style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;"><i style="'.$style1.'">'.($key+1).'</i> <a href="'.$permalink.'" title="'.$post_title.'" target="_blank">'.$post_title.'</a></li>';
}else{
echo '<li style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;"><i style="'.$style2.'">'.($key+1).'</i> <a href="'.$permalink.'" title="'.$post_title.'" target="_blank">'.$post_title.'</a></li>';
}
}
}
}
前端样式sidebar.php 文件加入调用方法和样式:
<div class="column">
<h3 class="title-sidebar"><i class="layui-icon"></i> <?php _e('最热文章'); ?></h3>
<ul class="layui-row layui-col-space5">
<li style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;"><?php getHotComments('10');?></li>
</ul>
</div>
右侧增加获取最新的10条评论,在sidebar.php中添加如下代码即可:
<div class="column">
<h3 class="title-sidebar"><i class="layui-icon"></i> <?php _e('最新评论'); ?></h3>
<ul class="layui-row layui-col-space5">
<?php
$obj = $this->widget('Widget_Comments_Recent','ignoreAuthor=true','pageSize=10');
if($obj->have()){
while($obj->next()){
echo '<li style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">';
echo '<div>';
echo '<img style="border-radius: 20px; float: left; padding-right:5px" src="http://q2.qlogo.cn/headimg_dl? bs='.$obj->mAIl.'&dst_uin='.$obj->mail.'&dst_uin='.$obj->mail.'&;dst_uin='.$obj->mail.'&spec=40&url_enc=0&referer=bu_interface&term_type=PC" />';
echo '<div style="float: left;width: 180px;padding-right: 5px"> <p>'. $obj->author.'</p> <p style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;max-width: 180px; color: #999;"><a href="'.$obj->permalink.'">'. $obj->title.'</a></p></div>';
echo '</div>';
echo '<div style="clear: both"></div>';
echo '<p style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis; font-size: 10px; color: #999; padding-left: 5px">评论:'.$obj->text.'</p>';
echo '</li>';
}
}
?>
</ul>
</div>
这里说明一下,typecho默认是使用Gravatar的头像,我将此改为了使用QQ头像,毕竟国内年轻人谁还能没个qq,但是有没有Gravatar就是另说了。具体更改方法可以获取留言方式获取。