請(qǐng)問(wèn)鉤子中如何判斷終端?
/config/hooks.php
如下這樣在鉤子中判斷終端都出錯(cuò)呢
\Phpcmf\Hooks::on('cms_index', function() {
... 你的程序段
if (IS_PC) {
// 調(diào)用的pc模板
}
if (\Phpcmf\Service::C()->_is_mobile()) {
// 來(lái)之移動(dòng)端,pc端取反就行
}
});
沒(méi)有問(wèn)題,不會(huì)有錯(cuò)
開(kāi)源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問(wèn)題!
回復(fù)迅??蚣軇?chuàng)始人
問(wèn)題原因找到了,我是指PC端直接跳轉(zhuǎn)到指定URL,但跳轉(zhuǎn)后這個(gè)頁(yè)面又要跳轉(zhuǎn),重復(fù)重定向?qū)е麓虿婚_(kāi)。
可以排除后臺(tái),請(qǐng)問(wèn)怎么排除這個(gè)URL頁(yè)面呢
//程序運(yùn)行之后 \Phpcmf\Hooks::on('cms_init', function() { //判斷如果是移動(dòng)端 if (\Phpcmf\Service::C()->_is_mobile()) { //前端所有頁(yè)面判斷如果未登錄就跳轉(zhuǎn)到登錄頁(yè)面,除非后臺(tái) if (!\Phpcmf\Service::C()->uid && !in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) { dr_redirect(dr_member_url('login/index')); } } else { //如果不是移動(dòng)端就直接跳轉(zhuǎn)到指定URL dr_redirect('index.php?s=page&id=1'); } });理論上不會(huì)有問(wèn)題
//程序運(yùn)行之后 \Phpcmf\Hooks::on('cms_init', function() { //判斷如果是移動(dòng)端 if (\Phpcmf\Service::C()->_is_mobile()) { //前端所有頁(yè)面判斷如果未登錄就跳轉(zhuǎn)到登錄頁(yè)面,除非后臺(tái) 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 { //如果不是移動(dòng)端就直接跳轉(zhuǎn)到指定URL dr_redirect('index.php?s=page&id=1'); } });可以懸賞(設(shè)置懸賞)幾塊錢么
回復(fù)@靠懸賞(設(shè)置懸賞)賺錢買授權(quán)
你這是排除所有單頁(yè)面了吧,如何只排除這一個(gè)地址 index.php?s=page&id=1
if ( (APP_DIR != 'page' && $_GET[id]!=1) ) {
return;
}
回復(fù)@靠懸賞(設(shè)置懸賞)賺錢買授權(quán)
這里增加一個(gè)條件,排除后臺(tái)與 /index.php?s=api&c=run 這種apiURL
我如下這樣不行呢。
//如果不是移動(dòng)端就直接跳轉(zhuǎn)到指定URL if (!IS_ADMIN && !in_array(\Phpcmf\Service::L('Router')->class, ['api'])) { dr_redirect('/app.html');exit; }//程序運(yùn)行之后 \Phpcmf\Hooks::on('cms_init', function() { //判斷如果是移動(dòng)端 if (\Phpcmf\Service::C()->_is_mobile()) { if ( (APP_DIR != 'page' && $_GET[id]!=1) ) { return; } //前端所有頁(yè)面判斷如果未登錄就跳轉(zhuǎn)到登錄頁(yè)面,除非后臺(tái) if (!\Phpcmf\Service::C()->uid && !in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) { dr_redirect(dr_member_url('login/index')); } } else { //如果不是移動(dòng)端就直接跳轉(zhuǎn)到指定URL dr_redirect('index.php?s=page&id=1'); } });回復(fù)@靠懸賞(設(shè)置懸賞)賺錢買授權(quán)
不對(duì)吧,我是想在移動(dòng)端跳轉(zhuǎn)到指定URL這,排除后臺(tái)與/index.php?s=api&c=run 這種api接口的URL
//程序運(yùn)行之后 \Phpcmf\Hooks::on('cms_init', function() { if ( IS_ADMIN || IS_API ) { return; } //判斷如果是移動(dòng)端 if (\Phpcmf\Service::C()->_is_mobile()) { if ( (APP_DIR != 'page' && $_GET[id]!=1) ) { return; } //前端所有頁(yè)面判斷如果未登錄就跳轉(zhuǎn)到登錄頁(yè)面,除非后臺(tái) 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; } //如果不是移動(dòng)端就直接跳轉(zhuǎn)到指定URL dr_redirect('index.php?s=page&id=1'); } });回復(fù)@靠懸賞(設(shè)置懸賞)賺錢買授權(quán)
老鐵,你還是搞錯(cuò)了,我現(xiàn)在想在排除的不是 page頁(yè)面,
是要排除非后臺(tái)與 /index.php?s=api&c=run URL
這句話就是排除后臺(tái)和api,這兩塊錢好累啊
回復(fù)@靠懸賞(設(shè)置懸賞)賺錢買授權(quán)
哦,你是針對(duì)所有終端來(lái)排除的,,我試試看
回復(fù)@靠懸賞(設(shè)置懸賞)賺錢買授權(quán)
在排除這2條的基礎(chǔ)上,再增加排除 /index.php?s=page&id=1
你之前的好像不行呢
!=改為==
回復(fù)@小白一枚
這2塊錢不好賺啊
回復(fù)@小黃人 18html.com
哈哈,幫助解答的不都是雷鋒同志嗎,真是為了賺這幾塊錢嗎,不懸賞(設(shè)置懸賞)大家一樣愿意幫助,我習(xí)慣每個(gè)求助懸賞(設(shè)置懸賞)一點(diǎn)點(diǎn)算是鼓勵(lì)與感謝吧。
回復(fù)@小白一枚
開(kāi)個(gè)玩笑而已!刷刷發(fā)帖量
回復(fù)@小白一枚
你看我回復(fù),從來(lái)都沒(méi)要求過(guò)懸賞(設(shè)置懸賞)不是
回復(fù)@小黃人 18html.com
所以大家都是雷鋒同志。
啥問(wèn)題啊,解決沒(méi)
if ( (APP_DIR == 'page' && $_GET[id]==1) ) { return; }