discuz手機瀏覽切換到電腦版後無法再切換到手機版,原理分析

切換原理

discuz手機版切換電腦版,底部鏈接:電腦版,url末尾添加參數mobile=no,
新頁面會執行函數 source\class\discuz\discuz_application.php->init()->$this->_init_mobile()
if(getgpc('mobile') === 'no') {
dsetcookie('mobile', 'no', 3600);
$nomobile = true;
} elseif($this->var['cookie']['mobile'] == 'no' && getgpc('mobile') === 'yes') {
checkmobile();
dsetcookie('mobile', '');
} elseif($this->var['cookie']['mobile'] == 'no') {
$nomobile = true;
} elseif(!checkmobile()) {
$nomobile = true;
}
設置有效期爲1小時的mobile=no的cookie。
如果沒有傳參數,根據mobile=no的cookie,
$nomobile = true;
在下面直接返回false;
並沒有設置常量IN_MOBILE,
面在

頁面在選擇模板時,

if(defined('IN_MOBILE') && !defined('TPL_DEFAULT') && strpos($file, 'mobile/') === false || (isset($_G['forcemobilemessage']) && $_G['forcemobilemessage'])) {
$file = 'mobile/'.$oldfile;
}

只有IN_MOBILE被複制後,纔會選擇moblie手機模板。


發佈了31 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章