Magento在模块内添加新的菜单项
问题描述:
当前我想在菜单选项卡上添加一个新的菜单链接,但可以在不更改其他模块模板的情况下完成,但只需在模块内部添加?我想这样做的原因是因为我希望当我禁用我的模块时,菜单链接也将消失。Magento在模块内添加新的菜单项
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(我的模块) ??? 我该怎么办?
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>
答
这看起来像一个自定义导航对我来说,有没有办法,开箱项添加到主导航(无类别的项目反正)。
默认情况下,它只会显示类别,所以你的看起来像它可能被硬编码到模板中。
已经使用了很多模块和主题,如果是通过XML配置或管理选项添加链接的附加功能的自定义主题,我会非常惊讶。
你可以从我的topmenu.phtml文件中发布一些代码,然后我可以为你提供最好的操作。
答
为此,您必须在自定义模块中编写导航类,该类将扩展Mage_Catalog_Block_Navigation
,该类是您需要在本地导航类中重写的函数(renderCategoriesMenuHtml
)。 但问题是,实时用户大多有不同的主题,他们改变类等,这可能会在设计实现中发生冲突。