虚位以待(AD)
虚位以待(AD)
首页 > CMS教程 > Ecshop > ecshop不同域名访问显示不同模板界面效果的方法

ecshop不同域名访问显示不同模板界面效果的方法
类别:Ecshop   作者:码皇   来源:互联网   点击:

常有ecshop客户问这样的一个 需求, 他想 要这样一个网站, 网站内容是相同的程序,相同的数据,但是需要绑定不同的域名。 访问www zuimoban com 访问的是 红色模板,www qihaokeji com访问的是 绿色模板,而且后 ,魔客吧

常有ecshop客户问这样的一个 需求, 他想 要这样一个网站, 网站内容是相同的程序,相同的数据,但是需要绑定不同的域名。

访问www.zuimoban.com 访问的是 红色模板,www.qihaokeji.com访问的是 绿色模板,而且后台可以设置 不同的title ,关键字等内容(这样容易欺骗搜索引擎,),我是用ecshop给他实现这个功能的.

需要操作的地方大概有这么几个地方.

因为ecshop 是smarty 的模板引擎,主要去修改 他的编译目录,和缓存目录就可以实现这个效果了

第一:init.php,扩展显示的4 行模板判断代码

if($_SERVER['HTTP_HOST'] == 'www.zuimoban.com) {
$_CFG['template'] = 'default';
}else{
$_CFG['template'] = '360';
}

$smarty->template_dir = ROOT_PATH . 'themes/' . $_CFG['template'];// 设置当前网站到底用的是那一个模板(所以在这之前通过逻辑操作,让不同的页面调用不同的模板)

第二: 设置编译文件存放的目录:cls_template.php

函数 make_compiled (大概225) 里面有一句
$name = $this->compile_dir .'/'. basename($filename) . '.php'; // 编译文件存放的目录

要扩展成这样, 不同的模板存放补同的编译目录,扩展如下

global $_CFG; // 通过全局变量调用当前域名访问的模板

$name = $this->compile_dir . '/' .$_CFG['template'].'/'. basename($filename) . '.php';

第三, 如何开启静态缓存的话需要扩展的地方

函数 fetch 大概190行的

cls_template.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);

这样就OK 了, 一点都不破坏ecshop 原来的机制。


相关热词搜索: ecshop不同域名访问显示不同模板界面效果的