1

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" }

それを回避する方法はありますか?

4

1 に答える 1

2

CMS> を介して使用するWidgetsと、ウィジェットはレイアウト命令で作成され、特定のデータはすべてactionノードを使用して設定され (「 」を参照Mage_Widget_Model_Widget_Instance::generateLayoutUpdateXml())、ブロックが作成された後 (つまり の呼び出し後) に実行され_prepareLayout()ます。

あなたの場合、むしろ使用したいかもしれ_beforeToHtml()ません(いくつかの基本Magentoウィジェットと同様)。

于 2013-07-10T10:09:02.503 に答える