Magento如何添加“;主页“;链接accross-magento多商店网站,共享相同的主题


Magento How do i add "Home" link accross magento multi store site that shares same theme

我有一个带多商店的magento网站,我可以在默认商店上添加主页链接。整个网站及其多个商店共享相同的主题,但在主题中,我用代码编辑了template/page/navigation/top.php

<?php 
$_anyActive = false; 
foreach ($this->getStoreCategories() as $_category) 
{ 
   $_anyActive = $_anyActive || $this->isCategoryActive($_category); 
} 
?>
<li class="home <?php echo !$_anyActive ? 'active' : '' ?>">
    <a href="<?php echo $this->getUrl('')?>"><span><?php echo $this->__('Home') ?></span></a>
</li>

这个代码现在显示主页链接,但现在它只显示在默认商店中,但我希望它显示在所有其他商店中,我不理解这一点,但由于他们整个商店共享相同的主题,我想也许他们也应该能够阅读这个代码并显示主页链接,我可以复制主题,然后将它们分配给每个商店(我甚至不确定这是否可行),但这会使代码难以维护,因为我认为如果它们共享相同的设计,我可以只做一个更改并反思整个子商店。

以下是template/page/navigation/top.php 的内容

    <?php $_menu = ''?>
    <?php foreach ($this->getStoreCategories() as $_category): ?>
    <?php $_menu .= $this->drawItem($_category) ?>
    <?php endforeach ?>
    <?php if ($_menu): ?>
    <div class="nav-container">
    <ul id="nav">
    <?php $_anyActive = false; foreach ($this->getStoreCategories() as $_category)         { $_anyActive = $_anyActive || $this->isCategoryActive($_category); } ?>
     <li class="home <?php echo !$_anyActive ? 'active' : '' ?>"><a href="<?php echo $this->getUrl('')?>"><span><?php echo $this->__('Home') ?></span></a></li> 
    <?php echo $_menu; ?>
</ul>
     </div>
    <?php endif; ?>

我希望你能帮我解决这个问题

使用以下代码

<li class="home <?php if (Mage::helper('core/url')->getCurrentUrl() === Mage::helper('core/url')->getHomeUrl()):?> active<?php endif;?>"><a href="<?php echo $this->getUrl('')?>"><span><?php echo $this->__('Home') ?></span></a></li>

我想问题在于您将主页链接放在了主导航中。由于您的二级商店没有任何导航,因此还没有生成整个无序列表。

试试这个:

<?php
 $_menu = '';
 $_anyActive = false;
 foreach ($this->getStoreCategories() as $_category){
  $_menu .= $this->drawItem($_category);
  $_anyActive = $_anyActive || $this->isCategoryActive($_category);
 }
?>
<div class="nav-container">
<ul id="nav">
 <li class="home <?php echo !$_anyActive ? 'active' : '' ?>"><a href="<?php echo $this->getUrl('')?>"><span><?php echo $this->__('Home') ?></span></a></li>
 <?php echo $_menu; ?>
</ul>
</div>

Neeraj Garg的答案最终是解决方案,但我想对此进行扩展。

转到/app/design/frontend/default/yourtheme/template/page/html/topmenu.html

这可能是我的主题所特有的。我想大多数人都会在不同的文件夹中使用top.phtml,正如问题中提到的那样。打开"系统"->"配置"->"高级"->"开发人员"部分中的"模板路径提示"(您可能需要更改范围),以了解可以在哪个文件中编辑导航菜单。如果使用的是基本主题,请确保将其复制并粘贴到当前主题之外。

之后,我对Neeraj的建议使用了类似的解决方案。我的看起来是这样的,显然取决于我使用的主题(你的看起来可能会大不相同,因为它可能需要迎合你的主题)。

<li class="level0 nav-0 first level-top <?php if (Mage::helper('core/url')->getCurrentUrl() === Mage::helper('core/url')->getHomeUrl()):?> active<?php endif;?>">
    <a href="'" class="level-top">
        <span>Home</span>
    </a>
</li>
<?php echo $_menu ?>