Magento 删除控制器中每个操作的块
大家好,我已经创建了一个控制器。我希望此控制器中呈现布局的每个操作都排除页眉和页脚。是否可以通过xml实现这一点Magento 删除控制器中每个操作的块,magento,Magento,大家好,我已经创建了一个控制器。我希望此控制器中呈现布局的每个操作都排除页眉和页脚。是否可以通过xml实现这一点 <adminhtml_trips_index> <remove name="header" /> <remove name="menu" /> <remove name="footer" /> 不为每个动作都这样做 还有一些事件观察器,比如_beforeRenderLayout 目前我唯一的解决方案是在每
<adminhtml_trips_index>
<remove name="header" />
<remove name="menu" />
<remove name="footer" />
不为每个动作都这样做
还有一些事件观察器,比如_beforeRenderLayout
目前我唯一的解决方案是在每个操作中的$this->loadLayout()之后调用我定制的exclude\u redundant\u blocks()函数。为什么不在您自己的控制器中重写
loadLayout
方法并在此之后排除块,而不是在每个操作中都这样做
大概是这样的:
public function loadLayout($ids=null, $generateBlocks=true, $generateXml=true)
{
parent::loadLayout($ids, $generateBlocks, $generateXml);
//remove blocks here
return $this;
}
或者,另一种方法是创建一个客户布局句柄,以删除不需要的块
<custom_handle>
<remove name="header" />
<remove name="menu" />
<remove name="footer" />
</custom_handle>
上面的代码未经测试,但理论上它应该可以工作。为什么不在您自己的控制器中重写
loadLayout
方法并排除之后的块,而不是在每个操作中都这样做
大概是这样的:
public function loadLayout($ids=null, $generateBlocks=true, $generateXml=true)
{
parent::loadLayout($ids, $generateBlocks, $generateXml);
//remove blocks here
return $this;
}
或者,另一种方法是创建一个客户布局句柄,以删除不需要的块
<custom_handle>
<remove name="header" />
<remove name="menu" />
<remove name="footer" />
</custom_handle>
上面的代码未经测试,但理论上它应该可以工作。这确实是最整洁的方法。我会为你的回答做同样的回答。我不知道为什么我没有想到覆盖loadLayout。另外,手柄的加载是我不知道的非常好的模式。这确实是最整洁的方法。我会为你的回答做同样的回答。我不知道为什么我没有想到覆盖loadLayout。另外,手柄的负载是非常好的模式,我不知道。