1.0
This commit is contained in:
155
Plugin.php
Normal file
155
Plugin.php
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
<?php
|
||||||
|
namespace TypechoPlugin\YearlyData;
|
||||||
|
|
||||||
|
use Typecho\Plugin\PluginInterface;
|
||||||
|
use Typecho\Widget\Helper\Form;
|
||||||
|
use Typecho\Widget\Helper\Form\Element\Text;
|
||||||
|
use Typecho\Widget\Helper\Form\Element\Radio;
|
||||||
|
use Widget\Options;
|
||||||
|
use Utils\Helper;
|
||||||
|
|
||||||
|
if (!defined('__TYPECHO_ROOT_DIR__')) {
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 年度数据
|
||||||
|
*
|
||||||
|
* @package YearlyData
|
||||||
|
* @author 石头厝
|
||||||
|
* @version 1.2.0
|
||||||
|
* @link https://www.shitoucuo.com/
|
||||||
|
*/
|
||||||
|
class Plugin implements PluginInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 插件版本号
|
||||||
|
*/
|
||||||
|
const VERSION = '1.2.0';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 激活插件方法
|
||||||
|
*/
|
||||||
|
public static function activate()
|
||||||
|
{
|
||||||
|
// 添加后台菜单(1=控制台)
|
||||||
|
Helper::addPanel(3, 'YearlyData/Panel.php', '年度数据', '年度数据', 'administrator');
|
||||||
|
|
||||||
|
return _t('插件已激活,可在控制台菜单中找到"年度数据"入口');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 禁用插件方法
|
||||||
|
*/
|
||||||
|
public static function deactivate()
|
||||||
|
{
|
||||||
|
// 移除后台菜单
|
||||||
|
Helper::removePanel(3, 'YearlyData/Panel.php');
|
||||||
|
|
||||||
|
return _t('插件已禁用');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取插件配置面板
|
||||||
|
*/
|
||||||
|
public static function config(Form $form)
|
||||||
|
{
|
||||||
|
// 版本信息提示
|
||||||
|
/** echo '<div style="padding: 15px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 8px; margin-bottom: 20px; color: #fff;">';
|
||||||
|
echo '<div style="font-size: 18px; font-weight: bold; margin-bottom: 10px;">YearlyData 年度数据统计 v' . self::VERSION . '</div>';
|
||||||
|
echo '<div style="margin-bottom: 10px;">新增功能:年度目标设置与进度追踪</div>';
|
||||||
|
echo '<div style="font-size: 14px; opacity: 0.9;">请在左侧菜单「控制台 → 年度数据」中查看统计数据</div>';
|
||||||
|
echo '</div>';**/
|
||||||
|
|
||||||
|
// 默认显示条数
|
||||||
|
$topLimit = new Text('topLimit', null, '10',
|
||||||
|
_t('排行榜显示条数'),
|
||||||
|
_t('设置排行榜默认显示的条目数量'));
|
||||||
|
$form->addInput($topLimit);
|
||||||
|
|
||||||
|
// 默认年份
|
||||||
|
$defaultYear = new Text('defaultYear', null, date('Y'),
|
||||||
|
_t('默认统计年份'),
|
||||||
|
_t('设置默认统计的年份,留空则为当前年份'));
|
||||||
|
$form->addInput($defaultYear);
|
||||||
|
|
||||||
|
// 是否统计草稿
|
||||||
|
$includeDraft = new Radio('includeDraft',
|
||||||
|
['0' => _t('否'), '1' => _t('是')],
|
||||||
|
'0',
|
||||||
|
_t('是否统计草稿'),
|
||||||
|
_t('选择是否将草稿文章纳入统计'));
|
||||||
|
$form->addInput($includeDraft);
|
||||||
|
|
||||||
|
// 图表主题色
|
||||||
|
$chartColor = new Text('chartColor', null, '#667eea',
|
||||||
|
_t('图表主题色'),
|
||||||
|
_t('设置图表的主题颜色,使用十六进制颜色值'));
|
||||||
|
$form->addInput($chartColor);
|
||||||
|
|
||||||
|
// 年度目标设置标题
|
||||||
|
echo '<div style="padding: 15px; background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%); border-radius: 8px; margin: 20px 0; color: #fff;">';
|
||||||
|
echo '<div style="font-size: 16px; font-weight: bold; margin-bottom: 10px;">' . date('Y') . '年度目标设置</div>';
|
||||||
|
echo '<div style="font-size: 14px; opacity: 0.9;">设置' . date('Y') . '年度的数据目标值,将在统计面板中显示进度条</div>';
|
||||||
|
echo '<div style="font-size: 12px; opacity: 0.8; margin-top: 5px;">提示:每年的目标需要单独设置,请根据年度更新目标值</div>';
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
// 年度总文章数目标
|
||||||
|
$targetPosts = new Text('targetPosts', null, '400',
|
||||||
|
_t('年度文章数目标'),
|
||||||
|
_t('设置' . date('Y') . '年度文章发布目标数量,0表示不设置'));
|
||||||
|
$form->addInput($targetPosts);
|
||||||
|
|
||||||
|
// 年度总评论数目标
|
||||||
|
$targetComments = new Text('targetComments', null, '5000',
|
||||||
|
_t('年度评论数目标'),
|
||||||
|
_t('设置' . date('Y') . '年度评论数量目标,0表示不设置'));
|
||||||
|
$form->addInput($targetComments);
|
||||||
|
|
||||||
|
// 年度总图片数目标
|
||||||
|
$targetImages = new Text('targetImages', null, '10000',
|
||||||
|
_t('年度图片数目标'),
|
||||||
|
_t('设置' . date('Y') . '年度图片上传目标数量,0表示不设置'));
|
||||||
|
$form->addInput($targetImages);
|
||||||
|
|
||||||
|
// 年度总字数目标
|
||||||
|
$targetWords = new Text('targetWords', null, '2400000',
|
||||||
|
_t('年度总字数目标'),
|
||||||
|
_t('设置' . date('Y') . '年度文章总字数目标(单位:字),0表示不设置'));
|
||||||
|
$form->addInput($targetWords);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 个人用户的配置面板
|
||||||
|
*/
|
||||||
|
public static function personalConfig(Form $form)
|
||||||
|
{
|
||||||
|
// 暂无个人配置
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取插件配置
|
||||||
|
*/
|
||||||
|
public static function getConfig($key = null)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$config = Options::alloc()->plugin('YearlyData');
|
||||||
|
|
||||||
|
if ($key !== null) {
|
||||||
|
return isset($config->$key) ? $config->$key : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $config;
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取插件版本
|
||||||
|
*/
|
||||||
|
public static function getVersion()
|
||||||
|
{
|
||||||
|
return self::VERSION;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user