Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Добрый день.

Помогите решить задачу, нужно выводить дочерние категории лишь когда находимся в родительской -- эту часть я решил:

{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 ???

 

Ссылка на сообщение
Поделиться на другие сайты

Я так понял тут пока кошелек не откроешь хрен кто на тебя внимание обратит!?

Ну и ладно! Спасибо 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>

Дочерные категории выводятся только когда мы находимся в родительской или в любой из дочерных этой самой родительской!

Будьте добрее люди, всех денег не заработать!

Ссылка на сообщение
Поделиться на другие сайты

Спасибо Ami за помощь, сделал все как полагается в лучшем виде!

С его позволения тут и опубликую решение, мне жалко (жалко у пчелки в жопке!)

Если Вам подходит это решение, то рад за Вас.

 

А вообще оно кривое-прекривое, видны с ходу два больших недостатка:

1. вместо нормального вывода ВСЕГО дерева категорий выводит лишь первые два уровня.

2. Вообще не выводит категории на некоторых страницах (например, в блоге).

 

А если пристальнее посмотреть, может, и еще что выплывет...

Ссылка на сообщение
Поделиться на другие сайты

 

А если пристальнее посмотреть, может, и еще что выплывет...

а чего на него пристально смотреть, гавно оно и в Африке гавно,

:D

Ссылка на сообщение
Поделиться на другие сайты

Kors,

1. Больше 2-х уровней и не будет

2. Меню будет только в категориях и подкатегориях

 

Если у Вашего "решения" такие особенности, то об этом надо предупреждать сразу при постановке задачи, а не восхвалять фразами типа "все как полагается в лучшем виде".  А то ведь кто-то на Ваши фразы купится, применит, а потом будет тут вопросы задавать - что и почему идет не так. Надо же сознавать ответственность за свои слова...

Ссылка на сообщение
Поделиться на другие сайты

Корс, Ну лучше хоть что-то чем ничего!

Да и решение не мое, Автора я указал!

Косяк, спасибо! Ваше решение по-лучше будет -- использую!

p.s. Какого фейхуя тут в форме не работает буфер обмена, не возможно же ничего вставить, тот же ник!? :angry:

Изменено пользователем 3loY
Ссылка на сообщение
Поделиться на другие сайты

Универсальная функция, которая выводит СОСЕДНИЕ категории на ЛЮБОМ уровне вложенности:


{* Рекурсивная функция вывода соседних категорий *}
{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}
    Ссылка на сообщение
    Поделиться на другие сайты
    • 1 месяц спустя...

    Присоединяйтесь к обсуждению

    Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

    Гость
    Ответить в этой теме...

    ×   Вставлено с форматированием.   Вставить как обычный текст

      Разрешено использовать не более 75 эмодзи.

    ×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

    ×   Ваш предыдущий контент был восстановлен.   Очистить редактор

    ×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

    Загрузка...
    ×
    ×
    • Создать...