迅睿CMS框架是一款PHP8高性能·简单易用的CMS开源开发框架,基于MIT开源许可协议发布,免费且不限制商业使用,是免费开源的产品,以万端互联为设计理念,支持的微信公众号、小程序、APP客户端、移动端网站、PC网站等多终端式管理系统。
联系官方销售客服
1835022288
028-61286886
请问钩子中如何判断终端?
/config/hooks.php
如下这样在钩子中判断终端都出错呢
\Phpcmf\Hooks::on('cms_index', function() { ... 你的程序段 if (IS_PC) { // 调用的pc模板 } if (\Phpcmf\Service::C()->_is_mobile()) { // 来之移动端,pc端取反就行 } });
//程序运行之后 \Phpcmf\Hooks::on('cms_init', function() { //判断如果是移动端 if (\Phpcmf\Service::C()->_is_mobile()) { //前端所有页面判断如果未登录就跳转到登录页面,除非后台 if (!\Phpcmf\Service::C()->uid && !in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) { dr_redirect(dr_member_url('login/index')); } } else { //如果不是移动端就直接跳转到指定URL dr_redirect('index.php?s=page&id=1'); } });
//程序运行之后 \Phpcmf\Hooks::on('cms_init', function() { //判断如果是移动端 if (\Phpcmf\Service::C()->_is_mobile()) { //前端所有页面判断如果未登录就跳转到登录页面,除非后台 if (APP_DIR != 'page' && !\Phpcmf\Service::C()->uid && !in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) { dr_redirect(dr_member_url('login/index')); } } else { //如果不是移动端就直接跳转到指定URL dr_redirect('index.php?s=page&id=1'); } });
//如果不是移动端就直接跳转到指定URL if (!IS_ADMIN && !in_array(\Phpcmf\Service::L('Router')->class, ['api'])) { dr_redirect('/app.html');exit; }
//程序运行之后 \Phpcmf\Hooks::on('cms_init', function() { //判断如果是移动端 if (\Phpcmf\Service::C()->_is_mobile()) { if ( (APP_DIR != 'page' && $_GET[id]!=1) ) { return; } //前端所有页面判断如果未登录就跳转到登录页面,除非后台 if (!\Phpcmf\Service::C()->uid && !in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) { dr_redirect(dr_member_url('login/index')); } } else { //如果不是移动端就直接跳转到指定URL dr_redirect('index.php?s=page&id=1'); } });
//程序运行之后 \Phpcmf\Hooks::on('cms_init', function() { if ( IS_ADMIN || IS_API ) { return; } //判断如果是移动端 if (\Phpcmf\Service::C()->_is_mobile()) { if ( (APP_DIR != 'page' && $_GET[id]!=1) ) { return; } //前端所有页面判断如果未登录就跳转到登录页面,除非后台 if (!\Phpcmf\Service::C()->uid && !in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) { dr_redirect(dr_member_url('login/index')); } } else { if ( (APP_DIR != 'page' && $_GET[id]!=1) ) { return; } //如果不是移动端就直接跳转到指定URL dr_redirect('index.php?s=page&id=1'); } });
if ( (APP_DIR == 'page' && $_GET[id]==1) ) { return; }
问题原因找到了,我是指PC端直接跳转到指定URL,但跳转后这个页面又要跳转,重复重定向导致打不开。可以排除后台,请问怎么排除这个URL页面呢
这里增加一个条件,排除后台与 /index.php?s=api&c=run 这种apiURL我如下这样不行呢。
不对吧,我是想在移动端跳转到指定URL这,排除后台与/index.php?s=api&c=run 这种api接口的URL
这句话就是排除后台和api,这两块钱好累啊
在排除这2条的基础上,再增加排除 /index.php?s=page&id=1你之前的好像不行呢