同乐论坛

 找回密码
 立即注册
搜索
查看: 2047|回复: 1

ThemeSwitcherForEmlog多设备主题切换器插件

[复制链接]

71

主题

158

帖子

218

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
218
发表于 2020-12-20 11:35:09 | 显示全部楼层 |阅读模式
以下为最初插件时间方法,但据说百度提交网站认证提示有301跳转,所以需要进行一些修改,具体参考2楼。
插件截图:

插件描述:
ThemeSwitcherForMultiDevice是一款为Emlog提供的根据设备自动切换主题的ThemeSwitcherForEmlog插件

Emlog各个版本插件的使用前提:

1、根目录的init.php中代码替换:
  1. define('TEMPLATE_URL',         TPLS_URL.Option::get('nonce_templet').'/');
复制代码
替换为
  1. session_start();
  2. if(isset($_GET['theme'])){
  3. $theme = $_GET['theme']=='reset' ? Option::get('nonce_templet') : $_GET['theme'];
  4. $_SESSION['theme']=$theme;
  5. }elseif(isset($_SESSION['theme'])){
  6.         $handle=opendir(TPLS_PATH);
  7.         while (($item=readdir($handle))!==false) {
  8.                 if($item!='.'&&$item!='..'){
  9.                         if (is_file ( TPLS_PATH . "/" . $item )) {
  10.                                 $arr ['file'] [] = $item;
  11.                         }
  12.                         if (is_dir ( TPLS_PATH . "/" . $item )) {
  13.                                 $arr ['dir'] [] = $item;
  14.                         }
  15.                 }
  16.         }
  17.         closedir($handle);
  18.         if(in_array($_SESSION['theme'],$arr["dir"])){
  19.                 $theme=$_SESSION['theme'];
  20.         }else{
  21.                 $theme="";
  22.         }
  23. }else{
  24.     $theme='';
  25. }
  26. if($theme==''){
  27.     define('TEMPLATE_NAME', Option::get('nonce_templet'));
  28. }else{
  29.     define('TEMPLATE_NAME', $theme);
  30. }
  31. define('TEMPLATE_URL', TPLS_URL.TEMPLATE_NAME.'/');
复制代码
2、根目录的index.php和微语目录的t/index.php中代码替换
  1. define('TEMPLATE_PATH', TPLS_PATH.Option::get('nonce_templet').'/');
复制代码
替换为
  1. define('TEMPLATE_PATH', TPLS_PATH.TEMPLATE_NAME.'/');
复制代码

插件下载:

回复

使用道具 举报

71

主题

158

帖子

218

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
218
 楼主| 发表于 2021-7-16 15:45:34 | 显示全部楼层
据说百度提交网站认证提示有301跳转,所以需要进行以下一些修改,一共3步:

1、修改插件文件ThemeSwitcher.php中大概55行,注释或删掉header跳转语句;
2、根目录的index.php和微语目录的t/index.php中代码替换没变化,参考第1楼方法即可;
3、主要将根目录的init.php中代码替换(因为还是需要插件,所以需要让多设备主体切换器插件保持启用状态):
  1. define('TEMPLATE_URL', TPLS_URL.Option::get('nonce_templet').'/');
复制代码
修改为:
session_start();//如果init.php中有了就删掉此语句
require_once dirname(__FILE__).'/content/plugins/ThemeSwitcher/Mobile_Detect.php';
$DB = Database::getInstance();
$get_option = $DB -> once_fetch_array("SELECT * FROM `".DB_PREFIX."options` WHERE `option_name` = 'ThemeSwitcher_option' ");
$config_app=unserialize($get_option["option_value"]);

$detect = new Mobile_Detect;
$deviceType = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer');

if(isset($_GET['theme'])){
        $theme = $_GET['theme']=='reset' ? Option::get('nonce_templet') : $_GET['theme'];
}else if($deviceType=='phone'){
        $handle=opendir(TPLS_PATH);
        while (($item=readdir($handle))!==false) {
                if($item!='.'&&$item!='..'){
                        if (is_file ( TPLS_PATH . "/" . $item )) {
                                $arr ['file'] [] = $item;
                        }
                        if (is_dir ( TPLS_PATH . "/" . $item )) {
                                $arr ['dir'] [] = $item;
                        }
                }
        }
        closedir($handle);
        if(in_array($config_app["moblie"],$arr["dir"])){
                $theme=$config_app["moblie"];
        }else{
                $theme="";
        }
}else if($deviceType=='tablet'){
        $handle=opendir(TPLS_PATH);
        while (($item=readdir($handle))!==false) {
                if($item!='.'&&$item!='..'){
                        if (is_file ( TPLS_PATH . "/" . $item )) {
                                $arr ['file'] [] = $item;
                        }
                        if (is_dir ( TPLS_PATH . "/" . $item )) {
                                $arr ['dir'] [] = $item;
                        }
                }
        }
        closedir($handle);
        if(in_array($config_app["tablet"],$arr["dir"])){
                $theme=$config_app["tablet"];
        }else{
                $theme="";
        }
}else if($deviceType=='computer'){
        $handle=opendir(TPLS_PATH);
        while (($item=readdir($handle))!==false) {
                if($item!='.'&&$item!='..'){
                        if (is_file ( TPLS_PATH . "/" . $item )) {
                                $arr ['file'] [] = $item;
                        }
                        if (is_dir ( TPLS_PATH . "/" . $item )) {
                                $arr ['dir'] [] = $item;
                        }
                }
        }
        closedir($handle);
        if(in_array($config_app["other"],$arr["dir"])){
                $theme=$config_app["other"];
        }else{
                $theme="";
        }
}else{
    $theme='';
}
if($theme==''){
    define('TEMPLATE_NAME', Option::get('nonce_templet'));
}else{
    define('TEMPLATE_NAME', $theme);
}
define('TEMPLATE_URL', TPLS_URL.TEMPLATE_NAME.'/');

经过以上3步即可消除百度提交网站认证中的301跳转提示,多设备切换也会保持正常使用。





回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|同乐论坛  

GMT+8, 2024-3-29 02:30 , Processed in 0.075377 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表