Модификация дерево категорий
Появилась необходимость деактивировать позиции содержащие подкатегории, то есть ссылками должны остацся только конечьные позиции каталога. Еще было бы неплохо выдавать 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>
Пример:
<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 ответов
Что конкретно должна представлять собой эта "деактивация"?
Что такое в вашем понимании "конечные позиции каталога"?
Деактивация - сделать их неактивными, не ссылками а просто надписями - заголовками.
Конечные позиции каталога - подкатегории.
Я хочу сделать "Аккордеон". Кликаем на категорию и в случае если она содержит подкатегории не переходем на нее а аккордеоном раскрываюца подкатегории. Если же категория не содержит подкатегории то соотвецтвено мы переходем на нее.
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;
}
});
Но в идеале мне бы хотелось чтобы деактивированные не были ссылками, чтобы не вести по ним пользователей и поисковики.
Как вообще закрыть эти разделы? А то ссылки на них будут и в "хлебных крошках", может еще где-то. Они лишние, там товаров нет.
- написать свой аналог функции wa_print_tree (например, взяв за основу её оригинальный код)
- написать свой хелпер для формирования хлебных крошек с деактивированными ссылками на корневые категории
- написать плагин, который будет добавлять в robots.txt директивы запрета индексации для категорий, в которых нет товаров (и удалять их оттуда, если в категории появятся товары)