应用户需求共用同一套ecshop数据,后台绑定多个域名,且每个域名对应显示不同模板。
实现思路,ecshop采用smarty模板引擎,修改他的编译目录和缓存目录就可以实现ecshop不同域名展示不同模板功能;废话少说,修改如下。
一、在init.php大概117行
$_CFG = load_config();
之后加入模板判断代码
if($_SERVER['HTTP_HOST'] == 'ecshop.vip') {
$_CFG['template'] = 'default';
}else{
$_CFG['template'] = 'default2';
}
$smarty->template_dir = ROOT_PATH . 'themes/' . $_CFG['template'];
二、修改cls_template.php大概227行
$name = $this->compile_dir .'/'. basename($filename) . '.php';
改为
global $_CFG;
$name = $this->compile_dir . '/' .$_CFG['template'].'/'. basename($filename) . '.php';
三、开启静态缓存之后需要修改cls_template.php
大概137行
if (!$this->_seterror)
上方加入
global $_CFG;
大概193行
$hash_dir = $this->cache_dir .'/' . substr(md5($cachename), 0, 1);
改为
$hash_dir = $this->cache_dir . '/'.$_CFG['template'].'/' . substr(md5($cachename), 0, 1);
这样就OK了,不破坏ecshop原本机制。