系统只有一个,后台当然也是共用一个,用不同的域名访问这个站,则显示不同的模板,实现方式是先把两个不同的域名解析到同一个服务器上,并同时绑定域名到网站目录上.然后
一,修改includes/init.php
这一句
$smarty->template_dir = ROOT_PATH . 'themes/' . $_CFG['template'];
整体替换为下面这几行
if($_SERVER['HTTP_HOST'] =='www.123.com' ) {
$_CFG['template'] = 'default';
}else{
$_CFG['template'] = 'coffee';
}
$smarty->template_dir = ROOT_PATH . 'themes/' . $_CFG['template'];
二,再修改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);
四.创建缓存目录,
需要在\temp\compiled 目录中建立模板名命名的目录
比如.对应不同的模板
\temp\compiled\default
\temp\compiled\coffee
temp\compiled\admin\coffee
temp\compiled\admin\default
五,修改清除缓存的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/default/';
$dirs[] = ROOT_PATH . $tmp_dir . '/compiled/coffee/';
$dirs[] = ROOT_PATH . $tmp_dir . '/static_caches/';//7月23补充,这句不增加,会引致修改商品分类后看不到效果,因为缓存没有被清空.
$dirs[] = ROOT_PATH . $tmp_dir . '/compiled/admin/coffee/';