在我的 Magento 安装中,我有一个从“类别”中的产品类别生成的下拉菜单。它使用代码:
<?php echo $this->getChildHtml('topMenu') ?>
来显示菜单。
但是,每隔一段时间,我想在菜单中添加一个静态 HTML 链接(带有超链接的列表项)。
我如何实现这一目标?
非常感谢您的任何指点
在当前版本的 Magento 中,您可以通过创建一个新类别然后将该类别重定向到您想要的任何 URL(CMS 页面、产品页面、异地等)来做到这一点。
您现在应该能够转到前端并在菜单中看到新类别。单击它会将您直接重定向到您提供的链接。与其他方法相比,我更喜欢这种方法,因为它可以让您更好地控制静态链接的放置位置,并允许您将静态链接的菜单项放在子菜单中。
该视频逐步展示了 Magento Go 的这项技术,但所有 Magento 风格的过程都是相同的。 http://www.youtube.com/watch?v=5rSIQlRC8Xk
这是您的答案: http: //www.magentocommerce.com/wiki/4_-_themes_and_template_customization/navigation/add_home_link_to_menu_bar
你可以试试这个方法。我认为这种方式比其他方式更合适。
http://www.atwix.com/magento/how-to-add-a-new-item-to-the-navigation-menu/
有几种方法可以做到这一点,你可以重写 Mage_Catalog_Block_Navigation 来实现这一点。
在 renderCategoriesMenuHtml 函数中,您可以使用计数器在 foreach 循环中的各个位置捕获它并渲染一个块:
if ($j == 1) {
$html .= $this->getLayout()->createBlock('namespace/yourmodule')->setTemplate('topMenu/link.phtml')->toHtml();
}
或者像这样直接渲染链接:
$html .= '<a href="yourlink.php">Link Name</a>';
第一种方法为前端开发人员提供了更多的灵活性,而不是在类中硬编码。
您还可以通过此方法实现一些严肃的操作,例如将图像添加到菜单中,我使用类似的方法在菜单中实现“特色产品”功能。
如何添加magento顶部菜单超链接标题标签 打开文件并查看代码
$html .= 'getUrl() 。'" ' . $outermostClassCode . ' >' . $this->escapeHtml($child->getName()) . '';
app/code/core/Mage/Page/Block/Html/Topmenu.php
$html .= 'getUrl() 。'" ' . $outermostClassCode . 'title="' . $this->escapeHtml($child->getName()) 。'">' . $this->escapeHtml($child->getName()) . '';
top.menu
您可以使用自定义链接在内部创建一个块。将此添加到您的主题local.xml
文件中:
<reference name="header">
<reference name="top.menu">
<block type="page/template_links" name="top.menu.custom-links">
<action method="addLink" translate="label title">
<label>New Link</label>
<url>my-url</url>
<title>New Link</title>
<prepare>true</prepare>
<urlParams helper="core/url/getHomeUrl"/>
<position>60</position>
</action>
</block>
</reference>
</reference>
我认为这是最简单的方法。