前置钩子
钩子 | 名称 | 说明 |
---|---|---|
cms_index_run | 系统运行前置 | 可用于IP,地域拦截等 |
cms_index_begin | 路由拦截 | 需return array,array格式参照/setting/route/index.php文件 |
系统后台钩子
钩子 | 名称 | 说明 |
---|---|---|
admin_top_menu | 插件按钮 | 位于顶部菜单 |
admin_left_menu | 插件按钮 | 位于左侧菜单 |
admin_logs_submenu_hook | 插件按钮 | 位于文章列表上方 |
admin_logs_edit_hook | 文章扩展钩子 | 传参$data文章数据,位于文章编辑器上方 |
admin_logs_edit_hook2 | 文章扩展钩子2 | 传参$data文章数据,位于文章编辑器下方 |
admin_logs_edit_hook3 | 文章扩展钩子3 | 传参$data文章数据,位于文章发布按钮上方 |
admin_logs_post | 文章新增、修改前置 | 传参$logId、$data和$oldData(V3.5.1) |
admin_logs_save | 文章新增、修改 | 传参$logId和$oldData(V3.0.0) |
admin_logs_dele | 文章删除 | 传参$ids,如:1,2,3 |
admin_logs_status | 文章状态更改 | 传参$ids,如:1,2,3 |
admin_pages_submenu_hook | 插件按钮 | 位于单页列表上方 |
admin_pages_edit_hook | 单页扩展钩子 | 传参$data单页数据,位于单页编辑器上方 |
admin_pages_edit_hook2 | 单页扩展钩子2 | 传参$data单页数据,位于单页编辑器下方 |
admin_pages_edit_hook3 | 单页扩展钩子3 | 传参$data单页数据,位于单页发布按钮上方 |
admin_pages_save | 单页新增、修改 | 传参$pageId,如:1 |
admin_pages_dele | 单页删除 | 传参$ids,如:1,2,3 |
admin_comment_submenu_hook | 插件按钮 | 位于评论列表上方 |
admin_attach_upload | 附件上传 | 传参$filepath,如:D:/www/aaa.jpg 可用户图片加水印 |
comment_reply | 回复评论 | 传参$data(回复的数据数组) 可用于邮件通知用户 |
系统前端钩子
仅用于index应用。
钩子 | 名称 | 说明 |
---|---|---|
comment_post | 前台评论前置 | 在保存数据前使用 |
comment_save | 前台评论后置 | 在保存数据后使用 |
index_header | 头部扩展 | 用于存放公共css等 |
index_footer | 底部扩展 | 用于存放公共mod,js等 |
index_search | 内容搜索 | |
index_logs_list | 文章列表扩展 | 传参$data文章列表数组 |
index_logs_detail | 文章/单页内容扩展 | 传参$data文章/单页数据 |
index_comment | 评论扩展 | (V1.9.4新增)可用于评论内容过滤、内容置换等 |
index_down | 附件下载前置 | 可用于更新下载量,授权下载等 |
使用钩子
引入钩子:use rp\Hook;
添加钩子
Hook::addHook(名称,执行控制器::执行方法),如:
Hook::addHook('hookName', 'plugin\demo\index::action');
删除钩子
Hook::deleHook(名称,执行控制器::执行方法),如:
Hook::deleHook('hookName','plugin\demo\index::action');
执行钩子
Hook::doHook(名称, $areg, $isReturn),如:
提示
$args为钩子的传递参数(数组形式),$isReturn默认false。
当$args传递钩子的指定方法时,$isReturn可为钩子的传递参数,第四参数可为$isReturn。
当$isReturn为true时,如果hook拥有多个,那么除第一个外其他不会执行。
//运行hookName钩子
$res=Hook::doHook('hookName');
//运行hookName钩子带参数,带上&表示引用参数
$args='this is args';
$res=Hook::doHook('hookName', [&$args]);
//运行hookName钩子带参数并返回
$args='this is args';
$res=Hook::doHook('hookName', [$args], true);
//运行hookName钩子的指定方法
$action='plugin\demo\index::action';
$res=Hook::doHook('hookName', $action);
//运行hookName钩子的指定方法并返回
$action='plugin\demo\index::action';
$res=Hook::doHook('hookName', $action, true);
//运行hookName钩子的指定方法并带参数
$action='plugin\demo\index::action';
$res=Hook::doHook('hookName', $action, ['this is args']);
//运行hookName钩子的指定方法带参数并返回
$action='plugin\demo\index::action';
$res=Hook::doHook('hookName', $action, ['this is args'], true);
提示
- 钩子是以数组形式返回执行结果,若同一个Hook有多个对应方法,则返回
[res1,res2,res3,...]
,res是字符串还是其他形式取决于hook对应方法的返回数据。 - 如果hook只有一个对应方法,想获取执行结果,则使用
$res[0]
获取。
获取钩子
Hook::getHook(名称)
判断钩子 是否存在
Hook::hasHook(名称)
保存钩子缓存文件
Hook::saveHook()
初始化清空钩子
Hook::setHookNull()