私はスライダーブロックMagentoで作業しており、オブザーバーからレイアウトを生成して更新しようとしています。
イベント:controller_action_layout_load_before
これは私のオブザーバーメソッドです:
$myXml="<".$page.">";
$myXml.='<reference name="'.$posH.'">';
$myXml.='<block type="sliderboard/slider" name="sliderboard" '.$posV.'="-" template="sliderboard/myview.phtml"/>';
$myXml.='</reference>';
$myXml.="</".$page.">";
$layout = $observer->getEvent()->getLayout();
//$layout=Mage::getSingleton('core/layout');
//Zend_Debug::dump($myXml); die();
$layout->getUpdate()->addUpdate($myXml);
$layout->getUpdate()->load();
$layout->generateXml();
$layout->generateBlocks();
実際、これは「$myXML」変数から取得したものです。
<cms_page>
<reference name="content">
<block type="sliderboard/slider" name="sliderboard" after="-" template="sliderboard/myview.phtml"/>
</reference>
</cms_page>
そして、それは動作しません!! しかし、このxmlをレイアウトにコピー/貼り付けしようとすると、機能します。Xmlコードは正しいです!助けが必要
ですありがとう!