我正在为Magento编写一个自定义小部件。我已成功配置它 - 加载并执行文件ABC/DEF/Resources.php
。
class ABC_DEF_Block_Resources extends Mage_Core_Block_Abstract implements Mage_Widget_Block_Interface{
protected function _prepareLayout(){
var_dump($this->getData());
}
}
通过
包含在静态CMS块中{{widget type="def/resources" res="css:test.css"}}
一切运作得很好
array(2) { ["type"]=> string(15) "def/resources" ["res"]=> string(11) "css:test.css" }
但是,当通过CMS->Widgets
(Block Reference: Page Top
)加入时,结果为
array(1) { ["type"]=> string(15) "def/resources" }
周围有什么办法吗?
答案 0 :(得分:2)
通过CMS
>使用时Widgets
,使用布局指令创建窗口小部件,并使用action
节点设置所有特定数据(请参阅Mage_Widget_Model_Widget_Instance::generateLayoutUpdateXml()
),这些节点在创建块后执行(因此在调用之后执行) _prepareLayout()
)。
在您的情况下,您可能更愿意使用_beforeToHtml()
(与一些基本的Magento小部件一样)。