在_prepareLayout中访问小部件的参数

时间:2013-07-10 09:26:14

标签: php magento

我正在为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->WidgetsBlock Reference: Page Top)加入时,结果为

array(1) { ["type"]=> string(15) "def/resources" }

周围有什么办法吗?

1 个答案:

答案 0 :(得分:2)

通过CMS>使用时Widgets,使用布局指令创建窗口小部件,并使用action节点设置所有特定数据(请参阅Mage_Widget_Model_Widget_Instance::generateLayoutUpdateXml()),这些节点在创建块后执行(因此在调用之后执行) _prepareLayout())。

在您的情况下,您可能更愿意使用_beforeToHtml()(与一些基本的Magento小部件一样)。