emlog前台模板预览的实现原理

首页要修改的第一个地方,我们打开init.php全局项加载文件,我们可以看到这一句代码

//前台模板URL

define('TEMPLATE_URL',TPLS_URL.Option::get('nonce_templet').'/');

可以看到前台模板地址常量是通过前端视图控制类的get函数得到的.查看代码可以发现是读取的配置文件缓存在后台设置的当前使用的模版的值.打开缓存文件options.php就能看到.

我们把字段代码改为以下代码

session_start(); //开启服务端cookies功能

if(isset($_GET['theme'])){//判断地址传送过来的theme参数是否有值,也就是我们在地址后面添加的?theme=xxx中的xxx

$theme = $_GET['theme']=='reset' ? Option::get('nonce_templet') : $_GET['theme'];//这一行判断这个值是不是reset,是的话将后台设置的前台模版名称赋值给$theme这个变量,否则将xxx赋值给它.

$_SESSION['theme']=$theme;

}elseif(isset($_SESSION['theme'])){//如果地址传过来的theme参数没有值,则从 $_SESSION['theme']里查找值

$theme=$_SESSION['theme'];

}else{

$theme='';//否则theme参数为空值

}

if($theme==''){//第二个条件判断,如果theme变量没有值,使用后台设置的模版

define('TEMPLATE_NAME', Option::get('nonce_templet'));

}else{//否则使用你输入的模版

define('TEMPLATE_NAME', $theme);

}

define('TEMPLATE_URL', TPLS_URL.TEMPLATE_NAME.'/');//得到前台模版路径,和默认的相比多了几个判断

这是第一处需要修改的地方,还有两处分别是

前端页面入口文件index.php和微语首页 t/index.php,这两个地方都是调用后台设置的模版的.

//define('TEMPLATE_PATH', TPLS_PATH.Option::get('nonce_templet').'/');//前台模板路径,默认是获得后台设置的模版

define('TEMPLATE_PATH', TPLS_PATH.TEMPLATE_NAME.'/');//这里改为了结果判断处理的表达式

你可能感兴趣的:(emlog前台模板预览的实现原理)