Автор Тема: Блок категории  (Прочитано 516 раз)

20 Февраль 2016, 16:15:14
  • Старожил
  • ****
  • Сообщений: 380
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всем добрый день!
Поздравляю всех с наступающим праздником!
Всего вам доброго!

Вопрос тут возник.
В категории введены как разделы так и подразделы. Для вывода всех категорий на страницах, в блоке категорий настройках стоит Главная, все как и надо. Ну например такой. Пример во вкладке.

Вопрос такой..
Как можно выделить фоном основные вазделы
Раздел (ворота лицевые)
Раздел (заборы)
Радел (гаражные ворота)
и т.д
То-есть только разделы.

Главную, КАТАЛОГ, это есть в blockcategories.css это сделано. Вроде понятно что надо делать в модуле blockcategories темы. В модуле  в файле category-tree-branch.tpl можно узнать id
{$node.id}и можно узнать
{$node.children|@count}
А как дальше...
Спасибо!
20 Февраль 2016, 16:43:39
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 1807
  • Репутация: +49/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Можно по параметру level_depth
if ($category->level_depth == 2)
    // присваивать класс;
20 Февраль 2016, 16:50:03
Ответ #2
  • Старожил
  • ****
  • Сообщений: 380
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо за ответ.
И где это сравнение делать?
В каком файле.
20 Февраль 2016, 17:09:35
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 1807
  • Репутация: +49/-1
  • Сообщество PrestaShop
    • Просмотр профиля
В /modules/blockcategories/blockcategories.php
Там есть переменная $maxdepth. Создать такую-же для уровня и передавать ее в функцию getTree().
$leveldepth = $category->level_depth;
...
$blockCategTree = $this->getTree($resultParents, $resultIds, $maxdepth, ($category ? $category->id : null), $leveldepth);
....
public function getTree($resultParents, $resultIds, $maxDepth, $id_category = null, $currentDepth = 0, $leveldepth)
{
    $return = array(
'id' => $id_category,
                        ...
                        'leveldepth' => $leveldepth,
в шаблоне
{if $leveldepth == 2}class="level2"{/if}в стилях
.level2{...}
20 Февраль 2016, 18:10:22
Ответ #4
  • Старожил
  • ****
  • Сообщений: 380
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо за ответ!
Пока сделал по другому..

{if $node.children|@count > 2}
<a
href="{$node.link|escape:'html':'UTF-8'}"{if isset($currentCategoryId) && $node.id == $currentCategoryId} class="selected"{/if}  title="{$node.desc|strip_tags|trim|escape:'html':'UTF-8'}">
{$node.name|escape:'html':'UTF-8'}
</a>

{else}

{if $node.children|@count > 0}
<a
href="{$node.link|escape:'html':'UTF-8'}"{if isset($currentCategoryId) && $node.id == $currentCategoryId} class="selected"{/if} style="font-weight: bold; color:#8D0000; font-size: 13px;" title="{$node.desc|strip_tags|trim|escape:'html':'UTF-8'}">
{$node.name|escape:'html':'UTF-8'}
</a>

{else}

<a
href="{$node.link|escape:'html':'UTF-8'}"{if isset($currentCategoryId) && $node.id == $currentCategoryId} class="selected"{/if}  title="{$node.desc|strip_tags|trim|escape:'html':'UTF-8'}">
{$node.name|escape:'html':'UTF-8'}
</a>

{/if}
{/if}
Но это только применительно для данного примера.
Сейчас пробую ваш вариант..

Всего доброго! Вопрос закрыт.