Как [правильно] сделать вывод каталога товаров через таксономию

Главные вкладки

Аватар пользователя фпгкг фпгкг 3 августа 2013 в 11:05

Здравствуйте! Интересует такой вариант вывода корневых терминов словаря, затем дочерних (или самих нод, относящихся к корнвому), затем страницы с нодами.
Уровень вложенности - не больше второго. Пример (что нужно - таков словарь терминов "товары"):

-Декоративные изделия из гипса и полимербетона
-Лепные изделия из полиуретана
-Искусственный интерьерный камень (гипс)
--Кирпич
--Булыжник
--Обои
--Разноразмер
--Сланец
-Искусственный фасадный камень (полимербетон)
--Сланец
--Разноразмер
--Кирпич
--Булыжник

  • Т.е., при заходе в корнвой раздел каталога юзер натыкается на 4 термина - с описаниями и миниатюрами КОРНЕВЫХ ТЕРМИНОВ;
  • При клике, например, по " Лепные изделия из полиуретана" - который не имеет вложенности, а имеет сразу товары - попадает на страницу с тизерами нод товаров (не важно на чем - ds или views, но предпочтительно на display suite - потому что мне кажется так правилтьнее по ряду причин);
  • При клике по "Искусственный ...(гипс)" - попадает на точно такую же страницу с описаниями дочерних терминов;
  • При клике, например, на "Кирпич" - на страницу с тизерами нод товаров;

В чем мой затык: не могу понять как организовать автоматическое формирование страниц если Модератор добавит новый корнвой термин или термин второго уровня вложенности и накидает туда товаров - что бы все происходило само.
--
Заранее спасибо!

Комментарии

Аватар пользователя voviko voviko 3 августа 2013 в 12:20

примерно так: создать views который выводит детей, и в него вложить taxonomy/term/%
естественно, если у "-Лепные изделия из полиуретана" появятся дети, то работать это не будет.
Будет, если taxonomy/term/% выводить только тогда, когда "views который выводит детей" пустой

Аватар пользователя фпгкг фпгкг 3 августа 2013 в 14:38

Т.е., если для каждого корневого термина сдалать страницы на вьюс, далее как настроить логику, что бы выводились либо дети, либо товары? Короче, как на вьюсах сделать рекурсию? Я не знаю...

Аватар пользователя Groomak Groomak 3 августа 2013 в 14:35

Уверен что это можно настроить в вьюисе, но будет это как в песне:

"Я буду долго гнать велосипед..." ))) В смысле, настраивать...

Аватар пользователя Groomak Groomak 3 августа 2013 в 14:55

Ща Гуру подтянутся и все не пальцах тебе разложат. Жди, короче.

p.s. И фото смени, а то могут и не помочь Smile

Аватар пользователя drupby drupby 3 августа 2013 в 15:03

"фпгкг" wrote:
Короче, как на вьюсах сделать рекурсию? Я не знаю...

делаешь вьюс /taxonomy/term/% ,который выводит термины ,аргумент родитель из урла
если нету детей то NO RESULTS BEHAVIOR и там в Global: View area указываешь заранее созданный вьюс ,который выводит материалы с аргументом по термину ,который унаследуется от текущей вьюхи
ну и потом создать вьюс ,который будет на странице или в блоке выводить только корневые термины

Аватар пользователя фпгкг фпгкг 3 августа 2013 в 15:16

Примерно дошло. Как победю Задачу - выложу Step-By-Step отчет. Что бы было. Но пока много вопросов и нюансов. Написал бы кто ЛС или на скайп - я б отдал решение вопроса за $.
P.S.: drupby - респект!

Аватар пользователя Groomak Groomak 3 августа 2013 в 15:30

"фпгкг" wrote:
выложу Step-By-Step отчет
Было бы не плохо... Вьюис поистине монструозен и любая наглядная инфа пригодится.

Аватар пользователя фпгкг фпгкг 3 августа 2013 в 20:42

ИТАК. ОБЕЩАННОЕ РЕШЕНИЕ:

Как был реализован каталог на друпале 7:

__Разогрев:

  • Создаем словарь терминов
  • Заводим тип данных - и создаем поле "Категория" с привязкой к созданному словарю
  • Ставим сам вьюз и "views tree"

__Расколбас:

  • Делаем вьюху для корневой каталога:
  • Первичная настройка: вывод теминов нужного словаря;
  • Далее меняем вывод готовых cущностей на вывод полей (с настр по умолч-ю) и вилим в превью как повился список ВСЕХ терминов пока без отображения иерархии.

__Вывод терминов. Настройка корневой страницы каталога:

  • В Дополнительно жмем Добавить отн-е;
  • Метим "Термин таксономии: Родительский термин" и применяем (оставляем настройки по умолчанию);
  • В разделе «Поля» добавить и в качестве параметра поля выбираем «Термин таксономии: ID термина» - убираем метку;
  • Аще раз добавить tid, НО в пункте «Связь» выбираем «Родитель».
  • Меняем метод вывода на Tree: в настройках в выпадающих списках в качестве значения «Main field» должно выступать поле первое созданное поле (Термин таксономии: ID термина), а в качестве значения «Parent field» должно выступать второе созданное поле;
  • Теперь эти два поля нужно исключить из вывода - в их настройках галочка "Исключить из вывода ".
  • [herase, тут настроек]
  • Задаем меню для вывода: Настройки страницы -> Меню - > Далее по Вашему усмтреню;
  • Теперь у нас появидась страница с выводом терминов с их иерархией. Так же, сюда можно вытягивать картинки и другие поля каждого термина.

__Вывод дочерних терминов при клике по родителю:

  • Создаем новую вьюху, которая выводит термины нужного словаря. Осн. настройка здесь Путь: taxonomy/term/%;
  • Едем далее - переходим справа в расширенных настройках в "Контекстнын фильтры" - создаем фильтр
  • ДАЛЬШЕ САМОЕ ИНТЕРЕСНОЕ:
  • Добавляем «Термин таксономии: Родительский термин»;
  • Жмём «Применить». В открывшемся окне «Если фильтра нет в URL», то «Передать значение по умолчанию», в качестве «Тип» выбираем «ID термина таксономии из URL»
  • Вуаля! При клике по Папе выводятся детишки ))

__Лирическое отступление:

  • ОднакО только что созданное представление накрыло собой вывод страницы с нодами, относящихся к дочернему термину. НО, это лечится.

[На этом месте у меня отвалился хостинг - ddos-еры заразы постарались]

__Настройка вывода тиреров товаров:

  • Создаем новую вьюху - которая выводит содержимое типа Тоавры или что у нас там. НЕ блок и НЕстраница - снять обе галочки.
  • Дадее, вместо Полей ставим вывод Содержимого. Дважды жмакаем Применить.
  • Добавляем контекстный фильтр - «Содержимое : имеет идентификатор термина таксономии». Жмем Далее.
  • В открывшемся окне в разделе «Когда значение фильтра не доступно» ставим кнопку напротив «Передать значение по умолчанию», а в качестве «Типа» выбираем «ID термина таксономии из URL» ;
  • Сохраняем вьюху.

ДАЛЬШЕ ЕЩЕ ИНТЕРЕСНЕЕ:

__В предыдущем представлении - которое выводило детишек - добавляем правило:

  • Дополнительно -> Поведение при отсутствии результата -> «Глобальный: область представления» -> выбираем машинное имя Пердставленя для вывода Тизеров товаров

__данунаh_все работает с первого раза!
Осталось только настроить правильный вывод полей терминов и полей товаров для страницы с тизерами товаров.

Источник: http://drupalfly.ru/lesson/create_catalog_drupal7_2
Реальный case в скором времени (в начале следующей недели) будет опубликован по адресу http://decorstone.pro ))
Всем спасибо за советы!

P.S.: Девиз Друпал: "Инсайт за инсайтом" Wacko