Доброго времени суток!
Осваиваю друпал потихоньку, для практики решил приступить к созданию своей задумки и... сразу же зашел в тупик. Может быть даже не там тему создаю...
Итак, вот в чем суть:
Допустим, на сайте есть список овощей и фруктов. Человек перейдя на страницу с определенным растением может прочитать о нем "общую информацию" - это основное содержимое страницы.
А теперь мне нужно реализовать что-то вроде меню с пунктами:
1. Компот
2. Пироги
3. Витамины
и т.п.
Т.е. на каждый овощефрукт есть одинаковое меню, но ссылки с меню должны вести на страницы касаемые выведенного предмета. Т.е. если мы открыли "Яблоко" ознакомились какое оно полезное и щелкнули на "Компот", то должна открыться страница именно с приготовлением яблочного компота.
Другими словами как сделать связь по материалам и выводить их? При этом каждому фруктоовщу соотвествует одна и только одна страница "Компот", "Пироги", "Витамины".
В какую сторону копать?
Заранее спасибо!
Комментарии
Думаю вам нужно сделать дополнительное поле - туда загнать термины (Яблоко, огурец....)
При создании материала типа Компот - указывать в таком же поле термин яблоко...
Ну так - на пальцах - у вас на всех типах материалов должен быть один термин.
В Вювсе делаете блок с выводом материалов все типов кроме Овощи, Фрукты и делаете контекстный фильтр "имеет идентификатор термина таксономии" по нужному словарю
Ну типа того. Если бы я сам делал это то было бы так:
таблица: "продукты" - ид, название
таблица: "применение" - ид, название
таблица: "статьи" - ид, связь_продукты, связь_применение.
Ну и выводил бы все статьи отбирая их по привязке к продукту.
Следовательно нужно как то указать какой продукт выводить при щелчке, к примеру, по "пироги", т.е. нужно чтобы ссылка была типа: "?product=apple&apply=pirogi"
Иначе откуда узнать с какой страницы жмет пользователь на ссылку меню "пироги"?
Может быть в друпале как то иначе это реализовано? Или так? Как это можно сделать?
подумал, подумал. Вроде же все проще выходит. Таксаномия две штуки - фруктыовощи и список меню.
На материал даем два поля и указываем в одном какой это фруктоовощ, а во втором к какому пункту меню он относится.
Следовательно на странице одного материала выводим вьюшку с отобром по этим двум полям. Теоретически. Пока проверить не на чем
Объясню очень бегло - спешу домой - по всех вопросам обращайтесь завтра
1. Создаем тип материала - Фрук/Овощь
2. Создаем тип материала - Дополнительно
3. В обоих типах материалов добавляем поле вибора из списка таксономии, илли автозавершение ввода (к примеру условно будем обращаться к словарю Produkt)
4. Добавляем пару нод для теста - яблоко, груша, картошка. Также создаем пару нод в типе Дополнительно (компот из яблок, рагу из картошки....) !!! на всех нодах в терминах указываем нужный овощь, фрукт.
5. Идем в вювс - создаем представление блок: Из полей, типа материала Дополнительно
6. Далее в настройках этого вювса добавляем Контекстный фильтр Содержимое: Имеет идентификатор термина таксономии
В нем: КОГДА ЗНАЧЕНИЕ ФИЛЬТРА НЕ ДОСТУПНО - > Передать значение по умолчанию
Тип: ID термина таксономии из URL
Ставим галочку на Загрузить фильтр по умолчанию со страницы материала. Это хорошо для связанных блоков таксономии
и на Ограничить термины словарем - тут еще ставим галочку на словарь Produkt
ДАЛЕЕ НИЖЕ - там где КОГДА ЗНАЧЕНИЕ ФИЛЬТРА ДОСТУПНО ИЛИ ПРЕДОСТАВЛЕНО ПО УМОЛЧАНИЮ
галочку к Переопределить заголовок - и в строке пишем %1
немного ниже - галочку к Укажите критерии проверки - и ставим снова словарь Produkt
Тип значения фильтра - ID термина
И будет вам счастье ) все сохраняем - и гоним блок в какой-то из регионов - в нем будут отображаться только ссылки/титулы на материалы типа Дополнительно - но только те - в зависимости на какой странице материала Офощи/фрукты вы находитесь (вся связь через термины)
Дорвался до компа наконец. Много непонятно, прежде всего из-за трудностей перевода. Не ставил я рус. язык ибо с моим инетом во время обновления по тайму вылетает с ошибкой и рус. накатывается только частично. Лирическое отступление было
Вью изначально не понял что выбирать, т.е. на первой страницы мастера: "показать" что? "of type" чего? По идее должны быть поля материала "дополнительно", но выбрать такое нельзя или я совсем не понимаю.
А делаю я что-то не так, так как "Ограничить термины словарем" на английском я в итоге не обнаружил там.
Я нашел как выглядит то, что мне нужно и вроде сделано на друпале:
http://www.worldtravelguide.net/somalia
Вот там слева меню одинаковое для каждой страны, ну а страницы разные. Может быть это меню статикой даже выведено. Можете предполжить?
))) разгребу сегодня немного работу и сделаю скринкаст - так будет проще - нету времени долго писать
Хорошо. Спасибо большое заранее.
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. извиняюсь за грамматику - вообще безграмотный) русский не учил - а на английском допускаю меньше ошибок чем на украинском)
Спасибо огромнейшее. Остается разобраться как работают контекстные фильтры Получается почти как нужно, если не придумаю ничего более подходящего, остановлюсь на этом варианте. Еще раз: большое спасибо за помощь и такой подробный ответ
Не за что.
По поводу контекстных фильтров - почитайте в интернете - есть очень много информации и уроков на русском.
Конечно можно было реализовать подобное - другими методами (например Entity Reference) - но как на меня - с таксономией - именно этот случай во 100 раз проще - да и таксономия - очень гибкая фишка Друпала!