thinkphp实现模板切换

2018-04-28 14:52:29 浏览数 (1)

thinkphp实现模板切换

首先在后台某个接口读取模板

AdminCommonfunction.php

代码语言:javascript复制
/*
 * 获取模板目录
 */
function getDir($dir) {
    $dir=scandir($dir);
    for ($i=0;$i<count($dir);$i  ){
        if ($dir[$i]=='.'){
            unset($dir[$i]);
        }
        if ($dir[$i]=='..'){
            unset($dir[$i]);
        }     
    }
    $dir=array_merge($dir);
    for ($i=0;$i<count($dir);$i  ){
        if ($dir[$i]=='index.html'){
            unset($dir[$i]);
        }
    }   
    $dir=array_merge($dir);
    return $dir;
}

AdminControllerSystemController.class.php

代码语言:javascript复制
    /*
     * 系统设置
     */
    public function systemBase()
    {

            // 获取模板目录
            $dir = "./App/Home/View";
            $file = getDir($dir);
            $this->assign('file', $file);
            $this->display();
    }

AdminViewSystemsystemBase.html

代码语言:javascript复制
<select name="template" class="select" id="template">
	<volist name="file" id="vo">
		<option value="{$vo}" <if condition="$data.template eq $vo ">selected="selected"</if> >{$vo}</option>
	</volist>
</select>

前台

HomeConfconfig.php

代码语言:javascript复制
<?php
return array(
	//'配置项'=>'配置值'
    'DEFAULT_THEME'       =>  'htmlv1.0', // 设置默认的视图层名称
);

新建公共控制器

CommonController.class.php

代码语言:javascript复制
<?php
namespace HomeController;
use ThinkController;
class CommonController extends Controller {
    /*
     * 初始化方法
     * 2017年4月19日10:08:52
     */
    public function _initialize(){
        $data=F('system');
        if (empty($data)){
            $model=M('system');
            $data=$model->where("id=%d",1)->find();
            F('system',$data);
        }
        if (!empty($data['template'])){
            C('DEFAULT_THEME',$data['template']);
        }      
    }      
}

前台视图

HomeViewhtmlv1.0

HomeViewhtmlv2.0

HomeViewhtmlv3.0

HomeViewhtmlv5.0

即可实现切换模板

0 人点赞