将静态链接添加到Magento中的顶部导航菜单

时间:2012-04-11 17:59:00

标签: php magento

在我的Magento安装中,我有一个下拉菜单,该菜单是从我的'Categories'中的Products类别生成的。 它使用代码: <?php echo $this->getChildHtml('topMenu') ?>显示菜单。

但是,在某些时间间隔内,我想在菜单中添加一个静态HTML链接(带有超链接的列表项)。

我如何实现这一目标?

非常感谢任何指针

5 个答案:

答案 0 :(得分:8)

在当前版本的Magento中,您可以通过创建新类别然后将该类别重定向到您想要的任何URL(CMS页面,产品页面,非现场等)来实现此目的。

  1. 创建一个新的子类别。将此名称命名为菜单中显示的方式。确保它具有唯一的URL密钥,它是活动的,并且它是“在导航菜单中”。您可以通过拖放到您想要显示的位置更改类别菜单中的位置来更改显示位置。
  2. 进入网址重写管理。您的新类别应该是刚刚创建的顶级系统链接。如果没有,请按新类别的ID号过滤表格。进入这个新的重定向。
  3. 将重定向更改为永久并复制目标路径。您将需要这个用于下一步。保存更改。
  4. 使用以下选项创建新的自定义网址重定向并保存
    • 商店:适用的商店。必须与您要重定向的类别的商店匹配
    • ID路径:您希望类别转到的网址。 (即礼品卡)
    • 请求路径:粘贴您在上一步中复制的目标路径
    • 目标路径:您希望类别转到的网址。 (即礼品卡)
    • 重定向:设为永久301
  5. 转到“索引管理”并刷新目录网址重写(如果需要)
  6. 您现在应该可以转到前端并在菜单中查看新类别。点击它会直接重定向到您提供的链接。我更喜欢这种方法,因为它可以让你更好地控制静态链接的放置位置,并允许你在子菜单中放置一个静态链接的菜单项。

    此视频逐步展示了Magento Go的这项技术,但对于所有口味的Magento来说,这个过程都是一样的。 http://www.youtube.com/watch?v=5rSIQlRC8Xk

答案 1 :(得分:4)

答案 2 :(得分:1)

有几种方法可以做到这一点,你可以重写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>';

第一种方法为前端开发人员提供了更多的灵活性,而不是在课堂上对其进行硬编码。

你也可以通过这种方法实现一些严肃的操作,例如在菜单中添加图像,我使用类似的东西在菜单中实现“特色产品”功能。

答案 3 :(得分:-1)

如何添加magento顶级菜单超链接标题标记 打开文件并查看代码

$ html。='getUrl()。 ''''$ outermostClassCode。'&gt;'                 。 $ this-&gt; escapeHtml($ child-&gt; getName())。 '';

应用程序/代码/核心/法师/页/块/ HTML / Topmenu.php

$ html。='getUrl()。 ''''$ outermostClassCode。'title =“'                 。 $ this-&gt; escapeHtml($ child-&gt; getName())。 '“&GT;'                 。 $ this-&gt; escapeHtml($ child-&gt; getName())。 '';

答案 4 :(得分:-1)

您可以使用自定义链接在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>

我认为这是最简单的方法。