我有一个kohana v3应用程序。 2个子域指向此应用程序。如果应用程序使用subdomain2.example.com进行调用,我必须设置kohana使用不同的模板吗?
此时所有调用(来自subdomain1和subdomain2)都使用标准模板:'templates / default'
谢谢你!丹尼尔
答案 0 :(得分:2)
首先,从$_SERVER['SERVER_NAME']
获取子域名:
list($subdomain) = explode('.', $_SERVER['SERVER_NAME'], 2);
然后根据子域选择要使用的模板:
// Replace this with a switch() statement if you want to choose another way
$this->template = 'templates/'.$subdomain;
在致电Controller::before()
之前,上述代码应放在parent::before()
方法中。这假定您使用的是Controller_Template
或其扩展名。
答案 1 :(得分:0)
任何人都可以帮助我:kohana v3: using different templates for different subdomains
danzzz,有几种方法......(我没有时间详细说明..所以我会快点去这里..).. A)使用URL重写来映射bla.site.com到site.com/bla(和www.bla.com + bla.com到bla.com/www)...使用第一个参数作为触发器...然后在堆栈顶部加载一个不同的模块,以便它可以覆盖较低模块中的任何内容 - 这假设任何可覆盖的东西都保存在模块中,否则,您可以将其用作任何触发器 代码中的位置...... 和B)真的是一样的东西,但使用那个参数作为视图名称或类似... 每当我有这样的东西,我倾向于把我的应用程序文件夹留空,并在模块堆栈的顶部附近有一个应用程序模块..这样,我可以加载一个“皮肤”模块更高,并让级联FS做所有努力工作...... 请记住,“皮肤”模块等需要一套严格的规则和界面,如果你对应用程序进行了更改,你需要知道所有的皮肤仍然可以工作......