在我的Magento安装中,我有一个下拉菜单,该菜单是从我的"类别"中的产品类别生成的。它使用的代码: <?php echo $this->getChildHtml('topMenu') ?>
显示菜单。
但是,在某些时间间隔内,我想在菜单中添加一个静态 HTML 链接(带有超链接的列表项)。
我如何实现这一点?
非常感谢任何指示
在Magento的当前版本中,您可以通过创建一个新类别然后将该类别重定向到所需的任何URL(CMS页面,产品页面,异地等)来执行此操作。
- 创建新的子类别。将其命名为您希望它在菜单中的显示方式。确保它具有唯一的URL键,处于活动状态,并且处于"导航菜单中"。您可以通过将它拖放到您希望它显示的位置来更改它在类别菜单中的位置来更改它的显示位置。
- 进入 URL 重写管理。您的新类别应该是刚刚创建的顶部系统链接。如果没有,请按新类别的 ID 号筛选表。进入这个新的重定向。
- 将重定向更改为永久并复制目标路径。下一步将需要它。保存更改。
- 创建新的自定义 URL 使用以下选项重定向并保存
- 商店
- :适用于此商店。必须与您要重定向的类别的商店匹配
- ID 路径:您希望类别转到的 URL。(即礼品卡)
- 请求路径:将从上一步复制的目标路径粘贴到此处
- 目标路径:您希望类别转到的 URL。(即礼品卡)
- 重定向:设置为永久 301
- 转到索引管理并刷新目录 URL 重写(如果需要)
您现在应该能够转到前端并在菜单中看到新类别。单击它会将您直接重定向到您提供的链接。我更喜欢这种方法,因为它可以让您更好地控制静态链接的放置位置,并允许您在子菜单中放置静态链接的菜单项。
该视频逐步展示了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 .' 标题="' .$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>
我认为这是最简单的方法。