【问题标题】:Magento How do i add "Home" link accross magento multi store site that shares same themeMagento 如何在共享相同主题的 magento 多商店网站上添加“主页”链接
【发布时间】:2016-01-10 00:58:35
【问题描述】:

我有一个包含多个商店的 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; ?>

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

【问题讨论】:

  • 你能把你店铺的网址发一下吗?
  • 我网站的网址是 welspot.com,我使用的是 hellowired 主题(根据我的需要进行了编辑)

标签: php magento themes


【解决方案1】:

使用以下代码

<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>

【讨论】:

    【解决方案2】:

    我想问题是你把你的主页链接放在主导航里面。由于您的二级商店没有任何导航,因此尚未生成整个无序列表。

    试试这个:

    <?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>
    

    【讨论】:

    • 那么你能告诉我一个更好的方法来解决这个问题,否则这个问题似乎没有解决方案
    • 非常感谢@dick-laurent,它成功了,你为我节省了很多工作,我不敢相信我从没想过我的子商店无法访问导航。我还有另一个问题,我希望你能再次帮助我,因为我已经相信你了。请在这里查看stackoverflow.com/questions/8868712/…
    【解决方案3】:

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

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

    这可能特定于我的主题。如问题中所述,我认为大多数人会在不同的文件夹中使用 top.phtml 。在 System->Configuration->Advanced->Developer 部分(您可能需要更改范围)中打开 Template Path Hints 以找出可以在其中编辑导航菜单的文件。确保将其复制并粘贴到您的将基本主题添加到您当前的主题中(如果它正在使用基本主题)。

    在那之后,我使用了与 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 ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多