Files
blog-source/var/Widget/Comments/Recent.php
2026-03-04 00:23:03 +08:00

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']);
}
}