Magento中为自定义控制器布局
当你用到Magento中的自定义控制器(不论前台还是后台)时,你可能会使用现有的块和模型,或者需要重写类。但当你想要移动、删除常见块的时候会发生什么呢?你真的能设计你的网页视图而不需要触及层叠样式表(CSS)?
事实上,是的你可以以一种相当简单的方式做到。前提是你知道你控制器的句柄。
要获取你控制器的句柄,你需要一些调试技术。在你控制器的动作里加入下面代码:
Zend_Debug::dump($this->getLayout()->getUpdate()->getHandles());
它以同样的方式作用于前端和后台。你自定义的动作看起来像这样:
public function indexAction()
{
$this->loadLayout();
$this->renderLayout();
Zend_Debug::dump($this->getLayout()->getUpdate()->getHandles());
}
在你的浏览器输出,你可能会得到这样的结果:
前端控制器:
array(5) {
[0] => string(7) "default"
[1] => string(13) "STORE_default"
[2] => string(29) "THEME_frontend_default_hybrid"
[3] => string(29) "alwayly_developers_index_index"
[4] => string(19) "customer_logged_out"
}
后台控制器:
array(4) {
[0] => string(7) "default"
[1] => string(11) "STORE_admin"
[2] => string(30) "THEME_adminhtml_default_inchoo"
[3] => string(28) "adminhtml_switch_index_index"
}
你需要数组中第四项的值。
前端:
[3] => string(29) "alwayly_developers_index_index"
后台:
[3] => string(28) "adminhtml_switch_index_index"
现在,你了解了句柄之后,我们开始你的布局文件。在你主题的布局文件夹里创建“local.xml”布局文件。在我简单的例子里,我移除头部和底部,前端和后台。
前端示例:app/design/frontend/default/default/layout/local.xml
< ?xml version="1.0"?>
<!--
/**
* Magento
*
* @category Alwayly
* @package Alwayly_Developers
*/
-->
<layout>
<alwayly_developers_index_index>
<remove name="header" />
<remove name="footer" />
</alwayly_developers_index_index>
</layout>
后台示例:app/design/adminhtml/default/default/layout/local.xml
< ?xml version="1.0"?>
<!--
/**
* Magento
*
* @category Alwayly
* @package Alwayly_Developers
*/
-->
<layout>
<adminhtml_switch_index_index>
<remove name="header" />
<remove name="footer" />
</adminhtml_switch_index_index>
</layout>
电商网站开发服务。
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
上一篇:如何扩展Magento订单网格 下一篇:给Magento PDF发票添加自定义属性