【问题标题】:kohana v3: using different templates for different subdomainskohana v3:为不同的子域使用不同的模板
【发布时间】:2010-05-04 10:40:58
【问题描述】:

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

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

谢谢!

丹尼尔

【问题讨论】:

    标签: php kohana kohana-3


    【解决方案1】:

    首先,从$_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;
    

    在调用parent::before()之前,上面的代码应该放在Controller::before()方法中。这假设您使用的是Controller_Template 或其扩展。

    【讨论】:

      【解决方案2】:

      谁能帮助我: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 完成所有工作辛勤的工作... 请记住,“皮肤”模块等将需要一套严格的规则和接口,如果您对应用程序进行更改,您需要知道所有皮肤仍然有效......

      【讨论】:

      • IRC 刻痕和格式被剥离 ;) 嗯 - 希望它对其他阅读它的人仍然有意义..
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      • 2015-10-27
      • 2011-12-10
      • 1970-01-01
      • 2010-10-29
      • 1970-01-01
      • 2016-09-14
      相关资源
      最近更新 更多