|
|
|
|
@ -1,18 +1,25 @@
|
|
|
|
|
from djangoblog.plugin_manage.base_plugin import BasePlugin
|
|
|
|
|
from djangoblog.plugin_manage.base_plugin import BasePlugin
|
|
|
|
|
from djangoblog.plugin_manage import hooks
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ViewCountPlugin(BasePlugin):
|
|
|
|
|
PLUGIN_NAME = '文章浏览次数统计'
|
|
|
|
|
PLUGIN_DESCRIPTION = '统计文章的浏览次数'
|
|
|
|
|
PLUGIN_VERSION = '0.1.0'
|
|
|
|
|
PLUGIN_AUTHOR = 'liangliangyy'
|
|
|
|
|
# 插件元信息定义
|
|
|
|
|
PLUGIN_NAME = '文章浏览次数统计' # 插件名称,用于管理界面展示
|
|
|
|
|
PLUGIN_DESCRIPTION = '统计文章的浏览次数' # 插件功能描述
|
|
|
|
|
PLUGIN_VERSION = '0.1.0' # 插件版本号
|
|
|
|
|
PLUGIN_AUTHOR = 'liangliangyy' # 插件作者
|
|
|
|
|
|
|
|
|
|
# 注册钩子:将统计逻辑绑定到文章内容获取后的钩子
|
|
|
|
|
def register_hooks(self):
|
|
|
|
|
# 当系统触发'after_article_body_get'钩子(文章内容加载完成后)时,执行record_view方法
|
|
|
|
|
hooks.register('after_article_body_get', self.record_view)
|
|
|
|
|
|
|
|
|
|
# 核心功能:记录文章浏览次数
|
|
|
|
|
def record_view(self, article, *args, **kwargs):
|
|
|
|
|
# 调用文章对象的viewed()方法,实现浏览次数+1的逻辑
|
|
|
|
|
# 注:viewed()方法需在Article模型中预先定义(通常包含计数器自增和保存操作)
|
|
|
|
|
article.viewed()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
plugin = ViewCountPlugin()
|
|
|
|
|
# 实例化插件:自动触发钩子注册,使插件生效
|
|
|
|
|
plugin = ViewCountPlugin()
|