Magento Как мне добавить ссылку «Домой» через мультимагазинный сайт с одинаковой темой? - PullRequest
1 голос
/ 22 января 2012

У меня есть веб-сайт 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>

Этот код теперь показывает домашнюю ссылку, но теперь ее показывает только в магазине по умолчаниюно я хочу, чтобы он показывался во всех других магазинах, я не понимаю этого, но поскольку все магазины используют одну и ту же тему, я подумал, что, возможно, они также смогут прочитать этот код и отобразить домашнюю ссылку, я мог бы продублировать темы и затемназначьте их каждому магазину (что я даже не уверен, что это сработает), но это сделает код неисправным для поддержки, так как я, если бы у них был одинаковый дизайн, я мог бы просто внести одно изменение и отразить все вложенные хранилища.

Ниже приводится содержимое шаблона / страницы / навигации / 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; ?>

Я надеюсь, что вы сможете помочь мне решить эту проблему

Ответы [ 3 ]

1 голос
/ 17 августа 2013

Используйте следующий код

<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>
0 голосов
/ 09 января 2016

В конце концов ответ Нираджа Гарга был решением, но я хотел бы остановиться на нем.

Перейдите в /app/design/frontend/default/yourtheme/template/page/html/topmenu.phtml

.

Это может быть связано с моей темой. Я думаю, что большинство будет использовать top.phtml в другой папке, как упоминалось в вопросе. Включите Подсказки к шаблонам в разделе Система-> Конфигурация-> Дополнительно-> Разработчик (вам может потребоваться изменить область действия), чтобы узнать, в каком файле можно редактировать меню навигации. Убедитесь, что вы скопировали и вставили его за пределы базовая тема в текущую тему, если она использует базовую тему.

После этого я использовал решение, аналогичное предложению Нираджа. Моя выглядит примерно так и, очевидно, зависит от темы, которую я использую (ваша, скорее всего, будет выглядеть по-другому, так как, вероятно, ее нужно будет удовлетворить вашей теме).

<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 ?>
0 голосов
/ 22 января 2012

Полагаю, проблема в том, что вы поместили домашнюю ссылку в основную навигацию. Поскольку ваши вторичные магазины не имеют навигации, весь неупорядоченный список не был сгенерирован.

Попробуйте это:

<?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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...