Magento-在模块内添加新菜单项

时间:2013-03-15 17:27:16

标签: magento module magento-1.7

目前我想在菜单选项卡上添加一个新的菜单链接,但是可以在不更改其他模块模板的情况下完成,但只需在我的模块中添加?我想这样做的原因是因为我希望当我禁用我的模块时,菜单链接也将消失。

page.xml(其他模块布局文件)

<block type="page/html_header" name="header" as="header">
                <block type="page/template_links" name="top.links" as="topLinks"/>
                <block type="page/switch" name="store_language" as="store_language" template="page/switch/languages.phtml"/>
                <block type="core/text_list" name="top.menu" as="topMenu" translate="label">
                    <label>Navigation Bar</label>
                    <block type="page/html_topmenu" name="catalog.topnav" template="page/html/topmenu.phtml"/>
                </block>
                <block type="page/html_wrapper" name="top.container" as="topContainer" translate="label">
                    <label>Page Header</label>
                    <action method="setElementClass"><value>top-container</value></action>
                </block>
            </block>

referral.xml(我的模块) ??? 我该怎么办? enter image description here

topmenu.phtml

<?php $_menu = $this->getHtml('level-top') ?>
    <?php if($_menu): ?>
    <div class="nav-container">
        <ul id="nav">
            <?php $active = is_numeric(stripos($_SERVER['REQUEST_URI'], 'aboutus')) ? 'active' : ''; ?>
            <li class="level0 nav-2 last level-top <?php echo $active; ?>">
                <a class="level-top" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);?>aboutus">
                    <span>About Us</span>
                </a>
            </li>
            <?php echo $_menu ?>
            <?php $active = is_numeric(stripos($_SERVER['REQUEST_URI'], 'redemption/store')) ? 'active' : ''; ?>
            <li class="level0 nav-2 last level-top <?php echo $active; ?>">
                <a class="level-top" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);?>redemption/store">
                    <span>Redemption Store</span>
                </a>
            </li>

2 个答案:

答案 0 :(得分:0)

对我来说,这看起来像是一个自定义导航,没有办法将项目添加到主导航(无论如何都没有类别项目)。

默认情况下它只会显示类别,所以你的看起来可能很难编码到模板中。

使用了很多模块和主题后,如果它是一个自定义主题,并且可以通过XML配置或管理选项添加链接,我会非常惊讶。

你可以为我发布topmenu.phtml文件中的一些代码,然后我可以为你提供最好的动作。

答案 1 :(得分:0)

为此,您必须在自定义模块中编写Navigation类,该类将扩展Mage_Catalog_Block_Navigation,该类是您需要在本地导航类中覆盖的函数(renderCategoriesMenuHtml)。 但问题是,实时用户大多有不同的主题,他们改变了类等,这可能会在设计实现中产生冲突。