【问题标题】:Magento: set the theme through codeMagento:通过代码设置主题
【发布时间】:2012-09-16 02:55:10
【问题描述】:

我正在使用以下代码从控制器显示页面

$html = $this->getLayout()
        ->createBlock('mymodule/myblock')
        ->setTemplate('mymodule/mypage.phtml')
        ->toHtml();
echo $html;

问题是我一直收到同样的错误

Not valid template file:frontend/base/default/template/mymodule/mypage.phtml

现在,该文件不在“base”文件夹下,而是在“defaul”下,但我不确定为什么 Magento 一直在那里搜索它。 我在这个显示之前做了 setTheme 方法

Mage::getDesign()->setPackageName("default")->setTheme("default");

但这无济于事,“base”文件夹仍然是搜索。

问题是 - 我错过了什么?

【问题讨论】:

  • 很奇怪,错误信息和你的模板文件夹名称不匹配
  • 啊,抱歉,输入错误,刚刚修复

标签: magento layout themes


【解决方案1】:

这就是您错误地得到base 的原因。 Magento 在搜索模板文件时实现了某种回退机制:

  • 首先在当前包和主题中搜索它,
  • 然后在当前包的默认主题中,
  • 比默认包和默认主题,
  • 最后在“base”中,最后一个是进入错误消息的那个。

您应该仔细检查模板文件名的拼写和setTemplate 方法中的字符串,99% 的时候这只是一些小错字造成的。

如果不是这样,请检查您现在使用的是什么主题,也许您将模板文件插入到错误的主题/包中。

【讨论】:

  • 像往常一样,这是再愚蠢不过的错误:-/我花了一整天的时间调试这个,我只需要一个正确的方向:) tnx!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-28
  • 2019-02-24
  • 2010-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-05
相关资源
最近更新 更多