mirror of
https://git.beihong.wang/wangbeihong/blog-source.git
synced 2026-04-23 16:33:04 +08:00
61 lines
1.4 KiB
PHP
Executable File
61 lines
1.4 KiB
PHP
Executable File
<?php
|
|
|
|
namespace Widget\Comments;
|
|
|
|
use Typecho\Config;
|
|
use Typecho\Db;
|
|
use Typecho\Db\Exception;
|
|
use Widget\Base\Comments;
|
|
|
|
if (!defined('__TYPECHO_ROOT_DIR__')) {
|
|
exit;
|
|
}
|
|
|
|
/**
|
|
* 最近评论组件
|
|
*
|
|
* @category typecho
|
|
* @package Widget
|
|
* @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
|
|
* @license GNU General Public License 2.0
|
|
*/
|
|
class Recent extends Comments
|
|
{
|
|
/**
|
|
* @param Config $parameter
|
|
*/
|
|
protected function initParameter(Config $parameter)
|
|
{
|
|
$parameter->setDefault(
|
|
['pageSize' => $this->options->commentsListSize, 'parentId' => 0, 'ignoreAuthor' => false]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* 执行函数
|
|
*
|
|
* @throws Exception
|
|
*/
|
|
public function execute()
|
|
{
|
|
$select = $this->select()->limit($this->parameter->pageSize)
|
|
->where('table.comments.status = ?', 'approved')
|
|
->order('table.comments.coid', Db::SORT_DESC);
|
|
|
|
if ($this->parameter->parentId) {
|
|
$select->where('cid = ?', $this->parameter->parentId);
|
|
}
|
|
|
|
if ($this->options->commentsShowCommentOnly) {
|
|
$select->where('type = ?', 'comment');
|
|
}
|
|
|
|
/** 忽略作者评论 */
|
|
if ($this->parameter->ignoreAuthor) {
|
|
$select->where('ownerId <> authorId');
|
|
}
|
|
|
|
$this->db->fetchAll($select, [$this, 'push']);
|
|
}
|
|
}
|