当你用到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>(责任编辑:好模板) |