挂钩点名称
cms_init
用法举例
/config/hooks.php
// appname指插件目录,表示这个插件在调用,方便排查是哪个插件在调用这个钩子
\Phpcmf\Hooks::app_on('appname', 'cms_init', function() { // 在网站初始化之后,加载模板之前执行的程序,例如判断用户是否登录 });
比如判断[前端的]全站用户的前端登录
// appname指插件目录,表示这个插件在调用,方便排查是哪个插件在调用这个钩子
\Phpcmf\Hooks::app_on('appname', 'cms_init', function() {
// 在网站初始化之后(不适用于静态页面)
if (IS_ADMIN ) {
return; // 后台跳过
} elseif(IS_MEMBER) {
return; // 用户中心跳过
} elseif (IS_API) {
return; // api跳过
} elseif(IS_API_HTTP) {
return; // api跳过
} elseif (in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) {
return; // 登录相关地址跳过
}
if (!\Phpcmf\Service::C()->uid) {
// 表示未登录 跳转登录页面
dr_redirect(dr_member_url('login/index'));exit;
}
});