Php 访问小部件';_prepareLayout中的s参数

Php 访问小部件';_prepareLayout中的s参数,php,magento,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());

我正在为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
块引用:Page Top
)包含时,结果是

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

任何方法?

当通过
CMS
Widgets
使用时,Widgets是使用布局指令创建的,所有特定数据都是使用
操作
节点设置的(请参见
Mage\u Widget\u Model\u Widget\u Instance::generateLayoutUpdateXml()
),这些节点在创建块后执行(因此在调用
\u prepareLayout()
之后)

在您的情况下,您可能更希望使用
\u beforeToHtml()
(一些基本Magento小部件也是如此)