3loY Опубликовано 19 января, 2015 Жалоба Поделиться Опубликовано 19 января, 2015 Добрый день.Помогите решить задачу, нужно выводить дочерние категории лишь когда находимся в родительской -- эту часть я решил: {function name=categories_tree} {if $categories} <ul class="side-menu"> {foreach $categories as $c} {* Показываем только видимые категории *} {if $c->visible} <li {if $category->id == $c->id}class="selected"{/if}> <a href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a> {if $category->id == $c->id} {categories_tree categories=$c->subcategories} {/if} </li> {/if} {/foreach} </ul> {/if} {/function} {categories_tree categories=$categories} а точнее: {if $category->id == $c->id} {categories_tree categories=$c->subcategories} {/if} но теперь когда перехожу в любую дочернюю категорию, они (дочерные) не выводятся, выводятся лишь родительские, как это исправить, сделать так что бы и в дочерных категориях категориях они выводились!? {if $category->id == $c->id OR ??? Цитата Ссылка на сообщение Поделиться на другие сайты
3loY Опубликовано 20 января, 2015 Автор Жалоба Поделиться Опубликовано 20 января, 2015 Я так понял тут пока кошелек не откроешь хрен кто на тебя внимание обратит!?Ну и ладно! Спасибо Ami за помощь, сделал все как полагается в лучшем виде!С его позволения тут и опубликую решение, мне жалко (жалко у пчелки в жопке!)Вместо: {categories_tree categories=$c->subcategories} Вставляем: <ul> {foreach $c->subcategories as $sub} {if $category && $category->id == $sub->parent_id || in_array($category->id, $c->children)} <li {if $category->id == $sub->id}class="selected"{/if}><a href="catalog/{$sub->url}" data-category="{$sub->id}">{$sub->name}</a><li> {/if} {/foreach} </ul> Дочерные категории выводятся только когда мы находимся в родительской или в любой из дочерных этой самой родительской!Будьте добрее люди, всех денег не заработать! Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 20 января, 2015 Жалоба Поделиться Опубликовано 20 января, 2015 {if in_array($category->id, $c->children)}Вот этого вполне достаточно.На форуме уже раз пять обсуждалось. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 20 января, 2015 Жалоба Поделиться Опубликовано 20 января, 2015 Спасибо Ami за помощь, сделал все как полагается в лучшем виде! С его позволения тут и опубликую решение, мне жалко (жалко у пчелки в жопке!)Если Вам подходит это решение, то рад за Вас. А вообще оно кривое-прекривое, видны с ходу два больших недостатка: 1. вместо нормального вывода ВСЕГО дерева категорий выводит лишь первые два уровня. 2. Вообще не выводит категории на некоторых страницах (например, в блоге). А если пристальнее посмотреть, может, и еще что выплывет... Цитата Ссылка на сообщение Поделиться на другие сайты
Akela1 Опубликовано 20 января, 2015 Жалоба Поделиться Опубликовано 20 января, 2015 А если пристальнее посмотреть, может, и еще что выплывет...а чего на него пристально смотреть, гавно оно и в Африке гавно, Цитата Ссылка на сообщение Поделиться на другие сайты
3loY Опубликовано 20 января, 2015 Автор Жалоба Поделиться Опубликовано 20 января, 2015 Kors,1. Больше 2-х уровней и не будет2. Меню будет только в категориях и подкатегориях Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 20 января, 2015 Жалоба Поделиться Опубликовано 20 января, 2015 Kors,1. Больше 2-х уровней и не будет2. Меню будет только в категориях и подкатегориях Если у Вашего "решения" такие особенности, то об этом надо предупреждать сразу при постановке задачи, а не восхвалять фразами типа "все как полагается в лучшем виде". А то ведь кто-то на Ваши фразы купится, применит, а потом будет тут вопросы задавать - что и почему идет не так. Надо же сознавать ответственность за свои слова... Цитата Ссылка на сообщение Поделиться на другие сайты
3loY Опубликовано 20 января, 2015 Автор Жалоба Поделиться Опубликовано 20 января, 2015 (изменено) Корс, Ну лучше хоть что-то чем ничего!Да и решение не мое, Автора я указал!Косяк, спасибо! Ваше решение по-лучше будет -- использую!p.s. Какого фейхуя тут в форме не работает буфер обмена, не возможно же ничего вставить, тот же ник!? Изменено 20 января, 2015 пользователем 3loY Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 20 января, 2015 Жалоба Поделиться Опубликовано 20 января, 2015 http://forum.simplacms.ru/topic/5795-%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4-%D0%BF%D0%BE%D0%B4%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B9-%D0%B2-%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B8/Вот рабочее решение для каталога с двумя уровнями. Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 20 января, 2015 Жалоба Поделиться Опубликовано 20 января, 2015 Универсальная функция, которая выводит СОСЕДНИЕ категории на ЛЮБОМ уровне вложенности: {* Рекурсивная функция вывода соседних категорий *} {function name=categories_tree_siblings} {if $categories} {foreach $categories as $c} {* Показываем только видимые категории *} {if $c->visible} {if $category->parent_id == $c->parent_id} id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape} {/if} {if in_array($category->id, $c->children)} {categories_tree_siblings categories=$c->subcategories} {/if} {/if} {/foreach} {/if} {/function} {categories_tree_siblings categories=$categories} Цитата Ссылка на сообщение Поделиться на другие сайты
kosix Опубликовано 2 марта, 2015 Жалоба Поделиться Опубликовано 2 марта, 2015 Нужно вывести на 4-ом уровне подкатегории, но не один из способов не подошел для меня ( Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.