1

Тема: Подкатегории

Добрый день. Подскажите в каком файле найти условие, если зайти в подкатегорию(sub_dir) то остальные подкатегории пропадают. Хочу сделать что бы они оставались

Повысить оценку Понизить оценку

Re: Подкатегории

В самом шаблоне выводятся только подкатегории текущей категории. У вас какая тема оформления?

3

Re: Подкатегории

Классическая. Вы просили создать тему на форуме, мы с вами общались по майлу

Повысить оценку Понизить оценку

4 Отредактировано Закусило Александр (19.05.2016 18:20:18)

Re: Подкатегории

Илья пишет:

Классическая. Вы просили создать тему на форуме, мы с вами общались по майлу

Отвечают разные люди.

Шаблон классической, который отвечает за вывод категорий находится в
/modules/catalog/view/list_products.tpl
Его для правки надо скопировать в:
/templates/default/moduleview/catalog/list_products.tpl

Там есть объект текущей категории в переменной $category.
id родительской категории находится в поле $category.parent.
Для получения категорий вы можете воспользоваться АПИ из текущего контроллера

{$my_subdirs=$this_controller->dirapi->getChilds($category.parent)}

5 Отредактировано Илья (20.05.2016 11:39:51)

Re: Подкатегории

Вот спасибо ,вот этой строчки кода мне не хватало. Вот полное решение:

в list_product.tpl после

{$list = $this_controller->api->addProductsDirs($list)}

вставить

{$dirapi = $this_controller->api->resetQueryObject()->setFilter('public', 1)->setFilter('parent', $category->parent)}
{$my_subdirs=$this_controller->dirapi->getChilds($category.parent)}

и заменить на:

    <nav class="subCategory">
        {if $sub_dirs}
        {foreach $sub_dirs as $item}
        <a href="{urlmake category=$item._alias p=null f=null bfilter=null}">{$item.name}</a>
        {/foreach}
        {else}
        {foreach $my_subdirs as $item}
        <a href="{urlmake category=$item._alias p=null f=null bfilter=null}">{$item.name}</a>
        {/foreach}
        {/if}
    </nav>

Но как подсветить активную подкатегорию? через ->isAct() не работает?

Повысить оценку Понизить оценку

Re: Подкатегории

isAct метода не существует в объекте директорий. В блочных категориях он просто приписывается. В Вашем случае - в случае front контроллера, идет просто сам объект категорий. Вы можете проверить используя поле alias у директории.
В шаблоне присутствует переменная $url.

{* Получаем алиас из переменой в $_REQUEST *}
{$alias=$url->request('category', 'string')}

Далее просто нужно сравнить эту переменную с полем у категории.

{if $alias==$dir.alias}
  //Ваш код
{/if}

7

Re: Подкатегории

что то не работает?

Повысить оценку Понизить оценку

8

Re: Подкатегории

Появилась обрешина, теперь почему то выводятся и спецкатегории. на скриншоте видно
http://storage6.static.itmages.ru/i/16/0520/s_1463734250_9619541_a32edd968a.png

Повысить оценку Понизить оценку

Re: Подкатегории

1. Что  такое обрешина?
2. У спецкатегорий есть поле is_spec_dir можно его тоже проверить.

{if $item.is_spec_dir!='Y'}

{/if}

что то не работает?

3. Проверьте название переменной. Я $dir привёл для примера.

10 Отредактировано Илья (08.06.2016 13:57:37)

Re: Подкатегории

1. Обрешина я имел в виду, что вылезли еще и спец категории.
2. С активной ссылкой разобрался спасибо.

Повысить оценку Понизить оценку