1

我有点坚持在我的自定义 phtml 中添加顶部链接。我删除了我的 xml 中的链接块<remove name="top.links"/>,现在在某些条件变为真之后,我想再次添加这个块。当我将此代码用于顶部菜单时,它可以工作但不适用于链接

$block = Mage::getSingleton('core/layout');     
        echo $block->createBlock('catalog/navigation')->setTemplate('catalog/navigation/top.phtml')->toHtml();

这有效并显示顶部菜单。但下面的代码没有显示任何内容。

        $block = Mage::getSingleton('core/layout');
        echo $block->createBlock('page/template_links')->setTemplate('page/template/links.phtml')->toHtml();

有什么帮助吗???

4

1 回答 1

0

使用观察者后,我暂时解决了我的问题。我认为这是另一种方式。在我的配置中,我定义了 oberser,例如:

 <frontend>
        <events>
            <controller_action_layout_generate_xml_before>
                <observers>
                    <Mymodule>
                        <class>Mymodule_Model_Observer</class>
                        <method>addmyblock</method>
                    </Mymodule>
                </observers>
            </controller_action_layout_generate_xml_before>
        </events> 
</frontend>

在 oberser 中,只需检查并删除块:

<?php
class Mymodule_Model_Observer
{
    public function addmyblock(Varien_Event_Observer $observer)
    {
         if(Mage::getStoreConfig("mymodule/general/enable")==1) 
    {
        $layout = $observer->getLayout();
        $layout->getUpdate()->addUpdate('<remove name="top.search"/>
        <remove name="top.links"/>');              
         $layout->generateXml();
     }
    }
}.

我也从 xml 中删除了代码<remove name="top.links"/>。因此,代码仅在条件为真时删除块。

于 2013-05-23T06:53:35.900 回答