2013-07-10 2 views
1

Magento 용 사용자 정의 위젯을 쓰고 있습니다. 성공적으로 구성했습니다 - 파일 ABC/DEF/Resources.php이로드되고 실행되었습니다. CMS->Widgets (Block Reference: Page Top)를 통해 포함 할 때_prepareLayout에서 위젯 매개 변수에 액세스

{{widget type="def/resources" res="css:test.css"}} 

모든 것을 통해 정적 CMS 블록에 포함

class ABC_DEF_Block_Resources extends Mage_Core_Block_Abstract implements Mage_Widget_Block_Interface{ 
    protected function _prepareLayout(){ 
     var_dump($this->getData()); 
    } 
} 

는 꽤 잘, 결과는

이다, 그러나
array(2) { ["type"]=> string(15) "def/resources" ["res"]=> string(11) "css:test.css" } 

를 반환 작품
array(1) { ["type"]=> string(15) "def/resources" } 

어쨌든 주위에? CMS>Widgets 통해 사용될 때

답변

2

위젯은 레이아웃 지침을 생성하고, 모든 관련 데이터는 블록 (그래서 호출 후 _prepareLayout()에) 생성 된 후에 실행된다 action 노드 (Mage_Widget_Model_Widget_Instance::generateLayoutUpdateXml() 참조)를 사용하여 설정된다.

경우에 따라 _beforeToHtml() (기본 Magento 위젯과 마찬가지로)을 사용하고 싶을 수도 있습니다.

+0

감사합니다. 내 문제를 해결했습니다. :) –

관련 문제