Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Вертикальное меню или как узнать в какой пользователь сейчас категории
 
alesto
Guru
 
Total Posts:  624
Joined:  2009-03-21
 

Хочу сделать вертикальное меню чтобы дочерние категории отображались только тогда когда пользователь находится в текущей категории. К сожалению в документации по магенте я это не нашёл. В иностранных форумах инфа есть, но она настолько разбросана по топиками что собрать всё воедино крайне не просто. Вообще как вывести только родительские категории? как вывести дочерние категории? Как узнать в какой я категории нахожусь?

 
Magento Community Magento Community
Magento Community
Magento Community
 
heathen
Sr. Member
 
Avatar
Total Posts:  100
Joined:  2009-04-07
 
alesto - 16 May 2009 03:10 AM

Хочу сделать вертикальное меню чтобы дочерние категории отображались только тогда когда пользователь находится в текущей категории. К сожалению в документации по магенте я это не нашёл. В иностранных форумах инфа есть, но она настолько разбросана по топиками что собрать всё воедино крайне не просто. Вообще как вывести только родительские категории? как вывести дочерние категории? Как узнать в какой я категории нахожусь?

Вертикальное меню для себя я реализовал так:

1. Перенес меню сверху в правый блок и сделал так, чтобы оно выводилось на всех страницах, где есть левый столбец.
2. Настроил в админке максимальную глубину выпадающего меню на единицу - т.е. чтобы подкатегории не выводились.
3. Подкатегории при входе в категории первого уровня выводятся в layered navigation автоматически, поэтому тут ничего кастомизировать не нужно, только нужно поставить опцию isAnchor для категории в Yes.

 
Magento Community Magento Community
Magento Community
Magento Community
 
alesto
Guru
 
Total Posts:  624
Joined:  2009-03-21
 

Ух ты. А я уже на заграничной ветке форума нашёл как такое сделать функциями smile

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

А как вы сделали чтобы оно выводилось везде где есть левая колонка?

 
Magento Community Magento Community
Magento Community
Magento Community
 
heathen
Sr. Member
 
Avatar
Total Posts:  100
Joined:  2009-04-07
 
alesto - 17 May 2009 03:42 AM

Ух ты. А я уже на заграничной ветке форума нашёл как такое сделать функциями smile

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

А как вы сделали чтобы оно выводилось везде где есть левая колонка?

Вот щас бы вспомнить, блин… решил перейти на полностью чистые лицензионно продукты, снес CS4 (включая Dramweaver, в котором замечательные возможности создания локальных копий сайтов и вообще удоюно), щас вспомнить, где что - застрелиться проще…

Если не ошибаюсь, я поправил catalog.xml (в своем собственном варианте темы, само собой), добавив в самом начале после <!-- Mage_Catalog -->

<reference name="left.menu">
            <
block type="catalog/navigation" name="catalog.leftmain" template="catalog/navigation/left-main.phtml"/>
       </
reference>

Лично мой catalog/navigation/left-main.phtml выглядит так:

<?php
/**
 * Magento
 *
 * @category   design_default
 * @package    Mage
 * @copyright  Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com)
 * @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
?>
<?php 
/**
 * Top menu for store
 *
 * @see Mage_Catalog_Block_Navigation
 */
?>
<div class="left-nav-container box">
    <
div class="rounded">
        <
h4 class="centered"><?php echo $this->__('Shop windows'?></h4>
        <
ul id="nav">
        
<?php foreach ($this->getStoreCategories() as $_category): ?>
            <?php 
echo $this->drawItem($_category?>
        <?php 
endforeach ?>
        
</ul>
                <
span class="corners cornersGrayWhite cornerBottomLeft"></span>
    </
div>
    
<?php echo $this->getChildHtml('topLeftLinks'?>
</div>

Т.е., по сути дела, я скопировал шаблон вывода верхнего меню и немного подправил код для получения нужного мне css. Единственное, в данный момент не могу вспомнить, нафига там <?php echo $this->getChildHtml('topLeftLinks') ?>. Как вспомню - расскажу.

 
Magento Community Magento Community
Magento Community
Magento Community
 
alesto
Guru
 
Total Posts:  624
Joined:  2009-03-21
 

Я уже с нуля сделал каталог под свои нужды smile Беда в том что в теме магенто classic вообще не выводится левая колонка чтобы я туда ручками не внёс. Скорее всего где то в лейауте чтото прописано

 
Magento Community Magento Community
Magento Community
Magento Community
 
heathen
Sr. Member
 
Avatar
Total Posts:  100
Joined:  2009-04-07
 
alesto - 17 May 2009 10:22 AM

Я уже с нуля сделал каталог под свои нужды smile Беда в том что в теме магенто classic вообще не выводится левая колонка чтобы я туда ручками не внёс. Скорее всего где то в лейауте чтото прописано

См. выше. catalog.xml править нужно, чтобы что-то выводилось.

 
Magento Community Magento Community
Magento Community
Magento Community
 
heathen
Sr. Member
 
Avatar
Total Posts:  100
Joined:  2009-04-07
 

Внимательно посмотрел еще раз.
По умолчанию начало catalog.xml имеет такой вид:

<!-- Mage_Catalog -->
        <
reference name="top.menu">
            <
block type="catalog/navigation" name="catalog.topnav" template="catalog/navigation/top.phtml"/>
        </
reference>

Поправить нужно на то, что я указал выше.

 
Magento Community Magento Community
Magento Community
Magento Community
 
alesto
Guru
 
Total Posts:  624
Joined:  2009-03-21
 

Я по другому сделал. Я прописал код каталога в файл left.phtml.
К сожалению он выводится везде кроме главной. Не понимаю почему так. И где это можно поменять

 
Magento Community Magento Community
Magento Community
Magento Community
 
heathen
Sr. Member
 
Avatar
Total Posts:  100
Joined:  2009-04-07
 
alesto - 17 May 2009 11:12 AM

Я по другому сделал. Я прописал код каталога в файл left.phtml.
К сожалению он выводится везде кроме главной. Не понимаю почему так. И где это можно поменять

Главной странице “по-умолчанию”, которая “из коробки”, в админке назначен шаблон 2columns-right.phtml, если не ошибаюсь, и вывод левой колонки осуществляется из html, который там же, в настройках Home page, прописан. Достаточно изменить шаблон на 3columns.phtml - и должно заработать.
Само собой, нужно убрать или отредактировать html-код, который прописан в настройках страницы.

 
Magento Community Magento Community
Magento Community
Magento Community
 
alesto
Guru
 
Total Posts:  624
Joined:  2009-03-21
 

Естественно я шаблон поменял. Любой кот который пишется в лефт не выводился на главной. Прописал через xml и всё стало нормально работать

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top