Модификация дерево категорий

Появилась необходимость деактивировать позиции содержащие подкатегории, то есть ссылками должны остацся только конечьные позиции каталога. Еще было бы неплохо выдавать 404 на те деактивированные. Это возможно реализовать?

Пример:
<ul class="category-tree">
<li>Обувь</li>
<li>Одежда
<ul>
<li>Мужская</li>
<li>Женская
<ul>
<li class="selected">Юбки</li>
<li>Платья</li>
</ul>
</li>
</ul>
</li>
<li>Аксессуары</li>
</ul>

5 ответов

  • 0
    Что именно в приведённом вами примере нужно деактивировать?
    Что конкретно должна представлять собой эта "деактивация"?
    Что такое в вашем понимании "конечные позиции каталога"?
    • 0
      Сергей Каримов Сергей Каримов 18 июня 2014 15:02 #
      В моем примере, категории "Одежда" и "Женская" не ссылки, поскольку содержат подкатегории и не вижу смысла переходить на них, это я назвал "деоктивацией".
      Деактивация - сделать их неактивными, не ссылками а просто надписями - заголовками.
      Конечные позиции каталога - подкатегории.
      Я хочу сделать "Аккордеон". Кликаем на категорию и в случае если она содержит подкатегории не переходем на нее а аккордеоном раскрываюца подкатегории. Если же категория не содержит подкатегории то соотвецтвено мы переходем на нее.
      • 0
        Если у вас в "деактивируемых" категориях 100% нет никаких товаров (а есть только в их подкатегориях), то добавьте в шаблон элемента дерева в функции wa_print_tree вот такой атрибут:

        data-count=":count"

        Получится примерно так:
        {wa_print_tree tree=$wa->shop->categories(0, null, true) selected=$selected_category unfolded=false class="menu-v category-tree" elem ='<a href=":url" title=":name" data-count=":count">:name</a>'}

        Затем добавьте JS-обработчик для щелчка по ссылке дерева вроде такого:

        $('.category-tree').on('click', 'a', function(){
        if ($(this).attr('data-count') == 0) {
        //развернуть подкатегории
        return false;
        }
        });
        • 0
          Сергей Каримов Сергей Каримов 19 июня 2014 10:29 #
          Хороший способ, можно брать на вооружение.
          Но в идеале мне бы хотелось чтобы деактивированные не были ссылками, чтобы не вести по ним пользователей и поисковики.
          Как вообще закрыть эти разделы? А то ссылки на них будут и в "хлебных крошках", может еще где-то. Они лишние, там товаров нет.
          • 0
            Подозреваю, что вам придётся:
            - написать свой аналог функции wa_print_tree (например, взяв за основу её оригинальный код)
            - написать свой хелпер для формирования хлебных крошек с деактивированными ссылками на корневые категории
            - написать плагин, который будет добавлять в robots.txt директивы запрета индексации для категорий, в которых нет товаров (и удалять их оттуда, если в категории появятся товары)

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

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