Задать урл для каждой категории отдельно по id и сделать возможность прикрутить к ней фото.

Добрый день! Второй день пытаюсь добить категории.

Хочу вывести каждую категорию отдельно, чтобы прилепить к ним картинку и выставить в виде меню.

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

{foreach from=$wa->shop->categories(2, null, true) item=cat name=leftmenu}

{if count($cat.childs)}

<li class="collapsible">

<a href="{$cat.url}">{$cat.name}</a>

<div class="flyout">

<div class="warp">

{wa_print_tree tree=$cat.childs unfolded=false collapsible_class='collapsible' class="menu-h" elem ='<a href=":url" title=":name">:name</a>'}

</div>

</div>

</li>

{else}

<li>

<a href="{$cat.url}">{$cat.name}</a>

</li>

{/if}

{/foreach}


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

Помогите назначить id каждой категории в отдельности, чтобы не нарушить dropmenu и при этом была возможность прикрутить картинку к ней... Заранее спасибо!


6 ответов

  • 1
    Роман Петунин 27 июля 2015 04:29 #

    Сделал по банальной схеме

    <ul class="pages flyout-nav" role="navigation">

    {if $theme_settings.category_nav_mode != 'sidebar'}

    {if $theme_settings.category_nav_mode == 'dropdown'}

    <ul class="category-menu-list">

    <li class="collapsible">

    <a href="#"><i id="iconsettings"class="category-icon1"></i></br>

    <span>Техника для кухни</span>

    </a>

    <div class="flyout">

    <div class="category-menu-container">

    <a href="#"><i class="subcategory-icon2"></i><span>Встраиваемая техника</span></a>

    <a href="#"><i class="subcategory-icon2subcategory-icon2"></i><span>Встраиваемая техника</span></a>

    </div>

    </div>

    </li>

    <li class="collapsible">

    <a href="#"><i id="iconsettings"class="category-icon2"></i></br>

    <span>Техника для дома</span>

    </a>

    <div class="flyout">

    <div class="category-menu-container">

    <a href="#"><i class="subcategory-icon2subcategory-icon2subcategory-icon2subcategory-icon2"></i><span>Встраиваемая техника</span></a>

    <a href="#"><i class="subcategory-icon2subcategory-icon2subcategory-icon2"></i><span>Встраиваемая техника</span></a>

    </div>

    </div>

    </li>

    <li class="collapsible">

    <a href="#"><i id="iconsettings"class="category-icon3"></i></br>

    <span>Носимая электроника</span>

    </a> (...)

    Получилось конечно красиво, но по удобству это АД!

    Кто-то подскажет, как сделать вывод субкатегории в родительской категории??

    Очень буду благодарен, а то сейчас приходится руками вписывать каждую категорию

  • 1
    Михаил Ушенин 27 июля 2015 04:33 #

    Вам нужно отобразить на сайте иерархическую структуру категорий (чтобы дочерние были вложены в родительские) и рядом с названием каждой категории (как дочерней, так и родительской) отображалась её иконка? Если не так, уточните, что именно нужно сделать — желательно одним предлолжением (боюсь, ваше описание пока что слишком пространно, чтобы понять, что именно вам нужно, на каком шаге у вас возникли проблемы и в чём именно они состоят).

  • 1
    Михаил Ушенин 27 июля 2015 05:04 #

    Возможно, вам стоит попробовать вместо цикла {foreach}... с вложенным вызовом wa_print_tree ...{/foreach} вызывать wa_print_tree только один раз:

    {wa_print_tree tree=$wa->shop->categories(0, null, true, true) unfolded=true collapsible_class='collapsible' class="menu-h" elem ='<a href=":url" title=":name" class="cat-depth-:depth"><img src=":params.icon"> :name</a>'}

    Комментарии:

    1. $wa->shop->categories(0, null, true, true)

      0 — чтобы получить сразу всё дерево категорий
      последнее true — чтобы получить категории с их доп. параметрами (см. ниже)
    2. unfolded=true — чтобы получить подкатегории всех уровней
    3. class="cat-depth-:depth" — так вы укажете CSS-класс с номером уровня категории и потом в CSS-файле опишете отображение категорий разных уровней
    4. <img src=":params.icon"> — иконка, URL, которой нужно вписать в поле для доп. параметров в свойствах каждой категории в виде

      icon=http://***
    • +1
      Роман Петунин Роман Петунин 27 июля 2015 10:34 #

      Благодарю за ответ. Возможно кто-то это сможет реализовать, но я не понял как это сделать. Мой уровень "Зеленого Рукодельника" не позволяет мне понять куда какой элемент сувать.

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

    • +1
      Роман Петунин Роман Петунин 27 июля 2015 15:08 #

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

      Единственный момент, как сделать так, чтобы субкатегории 3 выводились в строчку через запятую?

      И еще момент.. Движок адаптирован под количество товаров свыше 10000?

      • +1
        Михаил Ушенин Михаил Ушенин 28 июля 2015 04:23 #
        1. Для этого имеет смысл использовать собственную рекурсивную функцию для отображения категорий разного уровня с разным форматированием. Пример подобной функции: https://www.shop-script.ru/help/3207/aktivnaya-podkategoriya-podsvechivaet-roditelya/.
        2. Пожалуй, последний вопрос стоит задать в отдельной теме. Или поискать ответ на него в предыдущих обсуждениях.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите