2010-09-14 65 views
1

我正在Magento中做一个自定义模块,一切都会顺利进行...除了我想更改模块中所有页面使用的基本布局模板外。我已经做了一些搜索,并取得了一些成功。任何人有任何答案?我想做的事的东西线:在Magento中更改所有模块页面的设计

... 
<optionbox> 
    <reference name="root"> 
    <action method="setTemplate"><template>page/empty.phtml</template></action> 
    </reference> 
</optionbox> 

正如你可能已经猜到,这是一个收藏夹......我为惩罚我猜:)

回答

2

我注意到你的布局更新根源为<optionbox>,理论上它应该涵盖该模块下的所有控制器和动作。不过,我只见过<optionbox_index>,其中index来自IndexController在你的模块中完成。因此,也许试试这个替换您的控制器名称:

<layout> 
... 
<optionbox_index> 
    <reference name="root"> 
    <action method="setTemplate"><template>page/empty.phtml</template></action> 
    </reference> 
</optionbox_index> 

此外,你应该尝试艾伦风暴的LayoutViewer module,说明它是使用here。这可能会帮助您调试它。

欢呼声, JD

+0

基于所有的心痛和痛苦,我一直试图让这个工作我同意。我认为需要一个控制器来设置设计优先级,至少在这个级别上。这基本上是我现在正在做的。感谢你的回答。 – 2010-09-17 14:41:43

1

在我的模块馋嘴我内做到这一点像这样的控制器动作:

public function listAction() { 
    $this->loadLayout(); 
    $this->getLayout()->getBlock('root')->setTemplate('page/2columns-right.phtml'); 
    $this->renderLayout(); 
} 
+0

您是否必须对每个动作都这样做? – 2010-09-14 20:35:13

+0

似乎是这样。我试图在布局xml文件中做它,但它不适合我。这种方式更加灵活,因为您可以在运行时根据几乎所有参数对其进行自定义... – silvo 2010-09-14 20:46:30

0

你试图插入该片断到您的optionbox.xml布局文件?它看起来应该像你一样工作?

+0

不幸的是,它并没有。我不知道我在那里做错了什么... – 2010-09-15 16:52:35

+0

嗯...添加另一个答案,所以我可以格式化它... – 2010-09-16 13:15:38

相关问题