Magento:通过代码设置主题

时间:2012-09-24 15:52:33

标签: magento layout themes

我正在使用以下代码显示来自Controller的页面

$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");

但它没有帮助,仍然是“基础”文件夹是搜索。

问题是 - 我错过了什么?

1 个答案:

答案 0 :(得分:0)

所以这就是为什么你错误地base的原因。 Magento在搜索模板文件时实现了某种回退机制:

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

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

如果情况并非如此,请检查您现在使用的主题,也许您正在将模板文件插入错误的主题/包中。