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

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

Да это жесть! 

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

Идея с вызовом функции самой себя не подходит ибо не нужно выводить все дочерние категории. 

Подскажите пожалуйста, что я делаю не так? 

Сейчас сделал, что то вроде: 

 

{foreach $categories as $c0}
   {foreach $c0->subcategories as $c}
      {if $c->subcategories}{$c->name}{/if}
   {/foreach}
{/foreach}
 

 

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

Тоже пробовал, не выводится) Была еще идея создать массив со всеми категориями третьего уровня дальше условие что бы относились к категории в которой находятся и форич, но тоже без результата. не понимаю, почему со 2 уровнем прокатывают все манипуляции, а с 3 нет. Просто в бешенстве!!! 

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

да да.. я нашел свою тупость сделал уже.. забыл суда написать) Но я нашел грабли своего решения, точнее нашел что то обобщенное. Как правильно составить условие, т.е. узнать глубину нахождения в каталоге? если это первый уровень вложений то использую один цикл, если второй то использую другой цикл) 

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

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

Ссылка на сообщение
Поделиться на другие сайты
  {foreach $category->subcategories as $c}
{if $c->subcategories}{if $c->visible}<a href="catalog/{$c->url}">{$c->name}</a>{/if}{/if}
   {/foreach}
 

 

<nav id="subcategories">
<ul>
{foreach $categories as $c0}
{if in_array( $category->id, $c0->children)}
                        
{foreach $c0->subcategories as $c1}
{if in_array( $category->id, $c1->children)}


{foreach $c1->subcategories as $c}
<li><a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name}
 </a></li>
{/foreach}
{/if}


{/foreach}
{/if}
{/foreach}


</ul>


<ul>
{foreach item=c from=$subcategories}
<li class="lisub">
<a href="catalog/{$c->url}" class="asub">{$c->name}</a>
</li>


{/foreach}
 </ul>
 </nav>
 

Подробнее описать попозже ток. Больше лайков — раньше подробности

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

Скрипт работает с ошибкой, если товар находится в нескольких категориях. 

Пример: имеется товар - рука. И он есть в 2 категориях: 

Тело -> Конечности

Листок -> Колымага

То при заходе в категорию: Листок, вы уведите товар, который относится к категории Колымага, но пункт под меню будет отсутствовать. Найду решение выложу, будет хорошо, если кто то другой опередит.

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

Для работы со списком категорий меня всегда выручал {function name=fun param=value ...} в связке с рекурсией.

При необходимости можно передавать через аргумент функции - уровень категорий, на котором сейчас находитесь или необходимость её отображения в раскрытом виде.

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

да не, тут проблема в другом оказалась. И скорее вообще не относиться к выводу под категорий, категории в которой сейчас находимся.  Там смысл что в категории второго уровня есть товары из других категорий и показывать под категории еще и таких товаров. Как то так >.<

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

Давайте попробуем структурировать, написанное.

 

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

 

Проблема в этом?

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

Да там все жесче, если интересно можем продолжить. Моё мнение, что это лишний функционал, который к добру не приведет. 

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

Есть меню со списком под категорий, относящиеся к данной категории. Необходимо добавить волшебное второе меню, которое будет показывать под категории, на этом уровне, других веток к которым еще относиться товар. 

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

Может порисуем?)

 

Интерпретировал написанное как:

 

1) Обсуждается ситуация, когда мы выбрали один определенный товар и находимся на странице с его подробным описанием.

2) В меню категорий, должен быть развернут не только путь до основной категории товара, но и пути до всех категорий, в которые этот товар входит?

 

Или все еще хитрее... и надо при выборе категории в каталоге развернуть не только список её подкатегорий. Нужно также найти все категории, в которых входят товары из текущей и отобразить их тоже?

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

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

Пример веток:

1 - 2,1 - 2.2 

1 - 1.1 - 1.2

мы на пример в 1.1 , показываем все 1.1-1.n (под категории текущей категории)

Есть товары которые входят в 1.1 и 2.1 и т.д., 

то показываем доп. категории куда еще товар входит. И это только для одного, а на странице каталога таких товаров может быть оч много. 

По мне это полный бред. И я не знаю как реализовать, что бы этот чертовый перебор не был перебором (да бы время + ресурсы). Можно все еще где то хранить, но когда у тебя 20 категорий второго уровня и в каждой из них есть еще массив категорий. 

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

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

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

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

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

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

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

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

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

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