Вывод "подчиненных" материалов

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

Аватар пользователя Prowler Prowler 12 января 2015 в 22:01

Доброго времени суток!
Осваиваю друпал потихоньку, для практики решил приступить к созданию своей задумки и... сразу же зашел в тупик. Может быть даже не там тему создаю...
Итак, вот в чем суть:
Допустим, на сайте есть список овощей и фруктов. Человек перейдя на страницу с определенным растением может прочитать о нем "общую информацию" - это основное содержимое страницы.
А теперь мне нужно реализовать что-то вроде меню с пунктами:
1. Компот
2. Пироги
3. Витамины
и т.п.

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

Другими словами как сделать связь по материалам и выводить их? При этом каждому фруктоовщу соотвествует одна и только одна страница "Компот", "Пироги", "Витамины".

В какую сторону копать?
Заранее спасибо!

Комментарии

Аватар пользователя adamant08 adamant08 12 января 2015 в 22:27

Думаю вам нужно сделать дополнительное поле - туда загнать термины (Яблоко, огурец....)
При создании материала типа Компот - указывать в таком же поле термин яблоко...
Ну так - на пальцах - у вас на всех типах материалов должен быть один термин.
В Вювсе делаете блок с выводом материалов все типов кроме Овощи, Фрукты и делаете контекстный фильтр "имеет идентификатор термина таксономии" по нужному словарю

Аватар пользователя Prowler Prowler 12 января 2015 в 23:42

adamant08 wrote:
Думаю вам нужно сделать дополнительное поле - туда загнать термины (Яблоко, огурец....)
При создании материала типа Компот - указывать в таком же поле термин яблоко...
Ну так - на пальцах - у вас на всех типах материалов должен быть один термин.
В Вювсе делаете блок с выводом материалов все типов кроме Овощи, Фрукты и делаете контекстный фильтр "имеет идентификатор термина таксономии" по нужному словарю

Ну типа того. Если бы я сам делал это то было бы так:
таблица: "продукты" - ид, название
таблица: "применение" - ид, название
таблица: "статьи" - ид, связь_продукты, связь_применение.
Ну и выводил бы все статьи отбирая их по привязке к продукту.
Следовательно нужно как то указать какой продукт выводить при щелчке, к примеру, по "пироги", т.е. нужно чтобы ссылка была типа: "?product=apple&apply=pirogi"
Иначе откуда узнать с какой страницы жмет пользователь на ссылку меню "пироги"?
Может быть в друпале как то иначе это реализовано? Или так? Как это можно сделать?

Аватар пользователя Prowler Prowler 13 января 2015 в 0:11

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

Аватар пользователя adamant08 adamant08 13 января 2015 в 0:47

"Prowler" wrote:
Prowler

Объясню очень бегло - спешу домой - по всех вопросам обращайтесь завтра
1. Создаем тип материала - Фрук/Овощь
2. Создаем тип материала - Дополнительно
3. В обоих типах материалов добавляем поле вибора из списка таксономии, илли автозавершение ввода (к примеру условно будем обращаться к словарю Produkt)
4. Добавляем пару нод для теста - яблоко, груша, картошка. Также создаем пару нод в типе Дополнительно (компот из яблок, рагу из картошки....) !!! на всех нодах в терминах указываем нужный овощь, фрукт.
5. Идем в вювс - создаем представление блок: Из полей, типа материала Дополнительно
6. Далее в настройках этого вювса добавляем Контекстный фильтр Содержимое: Имеет идентификатор термина таксономии
В нем: КОГДА ЗНАЧЕНИЕ ФИЛЬТРА НЕ ДОСТУПНО - > Передать значение по умолчанию
Тип: ID термина таксономии из URL
Ставим галочку на Загрузить фильтр по умолчанию со страницы материала. Это хорошо для связанных блоков таксономии
и на Ограничить термины словарем - тут еще ставим галочку на словарь Produkt
ДАЛЕЕ НИЖЕ - там где КОГДА ЗНАЧЕНИЕ ФИЛЬТРА ДОСТУПНО ИЛИ ПРЕДОСТАВЛЕНО ПО УМОЛЧАНИЮ
галочку к Переопределить заголовок - и в строке пишем %1
немного ниже - галочку к Укажите критерии проверки - и ставим снова словарь Produkt
Тип значения фильтра - ID термина

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

Аватар пользователя Prowler Prowler 16 января 2015 в 18:42

"adamant08" wrote:
5. Идем в вювс - создаем представление блок: Из полей, типа материала Дополнительно
6. Далее в настройках этого вювса добавляем Контекстный фильтр Содержимое: Имеет идентификатор термина таксономии
В нем: КОГДА ЗНАЧЕНИЕ ФИЛЬТРА НЕ ДОСТУПНО - > Передать значение по умолчанию
Тип: ID термина таксономии из URL
Ставим галочку на Загрузить фильтр по умолчанию со страницы материала. Это хорошо для связанных блоков таксономии
и на Ограничить термины словарем - тут еще ставим галочку на словарь Produkt

Дорвался до компа наконец. Много непонятно, прежде всего из-за трудностей перевода. Не ставил я рус. язык ибо с моим инетом во время обновления по тайму вылетает с ошибкой и рус. накатывается только частично. Лирическое отступление было Smile

Вью изначально не понял что выбирать, т.е. на первой страницы мастера: "показать" что? "of type" чего? По идее должны быть поля материала "дополнительно", но выбрать такое нельзя или я совсем не понимаю.

А делаю я что-то не так, так как "Ограничить термины словарем" на английском я в итоге не обнаружил там.

Я нашел как выглядит то, что мне нужно и вроде сделано на друпале:

http://www.worldtravelguide.net/somalia

Вот там слева меню одинаковое для каждой страны, ну а страницы разные. Может быть это меню статикой даже выведено. Можете предполжить?

Аватар пользователя adamant08 adamant08 16 января 2015 в 18:41

"Prowler" wrote:
Вью изначально не понял что выбирать

))) разгребу сегодня немного работу и сделаю скринкаст - так будет проще - нету времени долго писать

Аватар пользователя adamant08 adamant08 17 января 2015 в 16:41

1. Создаю словарь таксономии с именем: Продукт
2. Создаю новый тип материала: Фрукт-Овощь
- Добавляю новое поле к нему с именем: тип(FIELD TYPE:Term reference, WIDGET:Autocomplete term widget)
- Далее указываю наш словарь: Продукт

http://pikucha.ru/ie1P3

3. Создаю новый тип материала: Дополнительно
- Добавляю новое поле к нему с именем: фрукт-овощь(FIELD TYPE:Term reference, WIDGET:select list)
- Далее указываю наш словарь: Продукт

http://pikucha.ru/ie1P4

4. Добавляю по несколько материалов типа Фрукт-Овощь к примеру:
- титул: Яблуко ПАПИРОВКА
Описание:Описание
Тип: Ялбуко
- титул: Яблуко АНТОНОВКА
Описание:Описание
Тип: Ялбуко
- титул: Картошка
Описание:Описание
Тип: Картошка
5. Добавляю по несколько материалов типа Дополнительно к примеру:
- титул: Компот яблучный
Описание:Описание
фрукт-овощь: Ялбуко
- титул: Пироги с картошкой
Описание:Описание
фрукт-овощь: Картошка
6. Проходим в views - создаем новое представление - типа блок - со следующими настройками:

http://pikucha.ru/ie1P5

- Далее добавляем контекстный фильтр - смотрите внимательно на картинки (некоторые настройки будут вам открыватся в зависимости от того какой пункт будете выбирать - я пронумеровал:
http://pikucha.ru/ie1P6
http://pikucha.ru/ie1P8
http://pikucha.ru/ie1P9
http://pikucha.ru/ie1Pa
Все это сохраняем - проходим в блоки - там появится новый блок View: left menu - запихаем его в нужный регион - к примеру у меня он в первом левом регионе- результат при открытие материалов фрукт-овощь:
http://pikucha.ru/ie1Pb
http://pikucha.ru/ie1Pc
http://pikucha.ru/ie1Pd

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

P.S. извиняюсь за грамматику - вообще безграмотный) русский не учил - а на английском допускаю меньше ошибок чем на украинском)

Аватар пользователя Prowler Prowler 20 января 2015 в 10:28

adamant08 wrote:
adamant08

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

Аватар пользователя adamant08 adamant08 20 января 2015 в 19:07

"Prowler" wrote:
Спасибо огромнейшее

Не за что.
По поводу контекстных фильтров - почитайте в интернете - есть очень много информации и уроков на русском.
Конечно можно было реализовать подобное - другими методами (например Entity Reference) - но как на меня - с таксономией - именно этот случай во 100 раз проще - да и таксономия - очень гибкая фишка Друпала!