ecshop系统只有一个,当然数据、后台当然也是通用一个,根据来访域名判断,不同域名使用不同模板。
实现思路:先把两个不同的域名解析到一起,并同时绑定域名到网站目录上.
一,修改includes/init.php
查找
$smarty->template_dir = ROOT_PATH . 'themes/' . $_CFG['template'];给其上面添加
if($_SERVER['HTTP_HOST'] =='www.baidu.com') { $_CFG['template'] = 'baidu';//www.baidu.com这个域名的模板目录 }elseif{$_SERVER['HTTP_HOST'] =='www.qq.com' $_CFG['template'] = 'qq';//www.qq.com这个域名的模板目录 }else{ $_CFG['template'] = 'default';//非特殊域名访问默认目录 }
二,再修改includes/cls_template.php 文件
查找
$name = $this->compile_dir . '/' . basename($filename) . '.php';
将其替换为
global $_CFG;// 通过全局变量调用当前域名访问的模板
$name = $this->compile_dir . '/' .$_CFG['template'].'/'. basename($filename) . '.php';//根据模板名生成缓存目录
三,第三步修改静态缓存目录,比如商店设置,商品分类等缓存目录.
继续查找
$hash_dir = $this->cache_dir . '/' . substr(md5($cachename), 0, 1);
将其替换为
global $_CFG;
$hash_dir = $this->cache_dir . '/'.$_CFG['template'].'/' . substr(md5($cachename), 0, 1);
四、修改清除缓存的clear_tpl_files函数
打开includes\lib_common.php
查找
$dirs[] = ROOT_PATH . $tmp_dir . '/compiled/';
$dirs[] = ROOT_PATH . $tmp_dir . '/compiled/admin/';
将其替换为
$dirs[] = ROOT_PATH . $tmp_dir . '/compiled/' . $_CFG['template'] . '/';
$dirs[] = ROOT_PATH . $tmp_dir . '/compiled/coffee/';
$dirs[] = ROOT_PATH . $tmp_dir . '/static_caches/';//修复修改商品分类后看不到效果,因为缓存没有被清空.
$dirs[] = ROOT_PATH . $tmp_dir . '/compiled/admin/' . $_CFG['template'] . '/';
五、创建缓存目录(以自己的域名为准),对应模板
\temp\compiled\default
\temp\compiled\baidu
\temp\compiled\qq
temp\compiled\admin\default
temp\compiled\admin\baidu
temp\compiled\admin\qq
本文地址:https://www.phpicu.com/article.php?id=41