迅睿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端取反就行 } });
沒有問題,不會有錯
回復迅睿框架創始人
問題原因找到了,我是指PC端直接跳轉到指定URL,但跳轉后這個頁面又要跳轉,重復重定向導致打不開。
可以排除后臺,請問怎么排除這個URL頁面呢
//程序運行之后 \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'); } });
可以懸賞(設置懸賞)幾塊錢么
回復@靠懸賞(設置懸賞)賺錢買授權
你這是排除所有單頁面了吧,如何只排除這一個地址 index.php?s=page&id=1
if ( (APP_DIR != 'page' && $_GET[id]!=1) ) {
return;
}
這里增加一個條件,排除后臺與 /index.php?s=api&c=run 這種apiURL
我如下這樣不行呢。
//如果不是移動端就直接跳轉到指定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'); } });
不對吧,我是想在移動端跳轉到指定URL這,排除后臺與/index.php?s=api&c=run 這種api接口的URL
//程序運行之后 \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'); } });
老鐵,你還是搞錯了,我現在想在排除的不是 page頁面,
是要排除非后臺與 /index.php?s=api&c=run URL
這句話就是排除后臺和api,這兩塊錢好累啊
哦,你是針對所有終端來排除的,,我試試看
在排除這2條的基礎上,再增加排除 /index.php?s=page&id=1
你之前的好像不行呢
!=改為==
回復@小白一枚
這2塊錢不好賺啊
回復@小黃人 18html.com
哈哈,幫助解答的不都是雷鋒同志嗎,真是為了賺這幾塊錢嗎,不懸賞(設置懸賞)大家一樣愿意幫助,我習慣每個求助懸賞(設置懸賞)一點點算是鼓勵與感謝吧。
開個玩笑而已!刷刷發帖量
你看我回復,從來都沒要求過懸賞(設置懸賞)不是
所以大家都是雷鋒同志。
啥問題啊,解決沒
if ( (APP_DIR == 'page' && $_GET[id]==1) ) { return; }
沒有問題,不會有錯
回復迅睿框架創始人
問題原因找到了,我是指PC端直接跳轉到指定URL,但跳轉后這個頁面又要跳轉,重復重定向導致打不開。
可以排除后臺,請問怎么排除這個URL頁面呢
理論上不會有問題
可以懸賞(設置懸賞)幾塊錢么
回復@靠懸賞(設置懸賞)賺錢買授權
你這是排除所有單頁面了吧,如何只排除這一個地址 index.php?s=page&id=1
if ( (APP_DIR != 'page' && $_GET[id]!=1) ) {
return;
}
回復@靠懸賞(設置懸賞)賺錢買授權
這里增加一個條件,排除后臺與 /index.php?s=api&c=run 這種apiURL
我如下這樣不行呢。
回復@靠懸賞(設置懸賞)賺錢買授權
不對吧,我是想在移動端跳轉到指定URL這,排除后臺與/index.php?s=api&c=run 這種api接口的URL
回復@靠懸賞(設置懸賞)賺錢買授權
老鐵,你還是搞錯了,我現在想在排除的不是 page頁面,
是要排除非后臺與 /index.php?s=api&c=run URL
這句話就是排除后臺和api,這兩塊錢好累啊
回復@靠懸賞(設置懸賞)賺錢買授權
哦,你是針對所有終端來排除的,,我試試看
回復@靠懸賞(設置懸賞)賺錢買授權
在排除這2條的基礎上,再增加排除 /index.php?s=page&id=1
你之前的好像不行呢
!=改為==
回復@小白一枚
這2塊錢不好賺啊
回復@小黃人 18html.com
哈哈,幫助解答的不都是雷鋒同志嗎,真是為了賺這幾塊錢嗎,不懸賞(設置懸賞)大家一樣愿意幫助,我習慣每個求助懸賞(設置懸賞)一點點算是鼓勵與感謝吧。
回復@小白一枚
開個玩笑而已!刷刷發帖量
回復@小白一枚
你看我回復,從來都沒要求過懸賞(設置懸賞)不是
回復@小黃人 18html.com
所以大家都是雷鋒同志。
啥問題啊,解決沒