1

我有一个 kohana v3 应用程序。2 个指向此应用的子域。如果应用程序使用 subdomain2.example.com 调用,我必须设置 kohana 使用不同的模板吗?

目前所有调用(来自 subdomain1 和 subdomain2)都使用标准模板:'templates/default'

谢谢你!

丹尼尔

4

2 回答 2

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或它的扩展。

于 2010-05-06T08:46:50.700 回答
0

任何人都可以帮助我:kohana v3:为不同的子域使用不同的模板

danzzz,有几种方法...(我没有时间详细介绍.. 所以我会在这里快速介绍一下..).. A)使用 URL 重写将 bla.site.com 映射到站点。 com/bla(和 www.bla.com+bla.com 到 bla.com/www)...使用第一个参数作为触发器...然后在堆栈顶部加载一个不同的模块,以便它可以覆盖任何内容从较低的模块 - 这假设任何可覆盖的东西都保存在模块中,否则,您可以将它用作代码中的任何位置的触发器......并且B)实际上是同一件事,但使用该参数作为视图名称或类似名称...每当我有类似的东西时,我倾向于将我的应用程序文件夹留空,并在模块堆栈顶部附近放置一个应用程序模块..这样,我可以加载更高的“皮肤”模块并且让级联 FS 完成所有艰苦的工作……记住“皮肤”模块等将需要一套严格的规则和接口,如果您对应用程序进行更改,您需要知道所有皮肤仍然有效......

于 2010-05-04T11:28:23.800 回答