Как работают relationships (связи, отношения) во Views? На примере Views + i18n
Прислано: Lex-DRL
чт, 11/03/2010 - 09:42
Посмотрел уже несколько туторов по views, прочитал оф.справку, погуглил по друпал.ру и .орг, но всё никак не могу понять одного: что такое связи (отношения, relationships) и как они работают?
Методом тыка кое-где они у меня даже задействованы. Но тот факт, что принцип их работы я не понимаю до конца, удручает.
В частности, сейчас сделал на сайте мультиязычность - теперь ломаю голову, как отфильтровать во вьюсах выводимые ноды, чтоб отображались только те, которые либо на нейтральном языке, либо на текущем языке просмотра.
В фильтрах есть только "жёсткие" варианты (дефолтный язык, язык юзера, конкретный язык).
В "отношениях" нашёл "Node translation: Translations" с вариантом "Current language". Вот только к какому фильтру это цеплять - ума не приложу. Метод тыка уже не помогает.
Если не трудно, объясните, пожалуйста, принцип функционирования связей "на пальцах". Или на вышеозначенном примере.
Буду также признателен за отсыл к толковому тутору, где досканально разъясняются relationships.
- Lex-DRL's blog
- Для комментирования войдите или зарегистрируйтесь
вот если не пугает английский язык И этот тоже на английском
- Для комментирования войдите или зарегистрируйтесь
Вторую ссылку уже читал - ничего не понял. За первую ссылку - благодарю, вроде немного прояснилось.
Уточнение: я правильно понимаю, что связи как бы сообщают Вьюшкам "вместо вывода значений из самого полученного результата бери их вот из этого у полученного результата"?
И всё равно небольшая путаница по поводу того, как именно работают связи с аргументами, фильтрами и сортировкой.
- Для комментирования войдите или зарегистрируйтесь
Грубо говоря, relationship - инструкция, как подключить дополнительную таблицу на основе данных базовой.
- Для комментирования войдите или зарегистрируйтесь
Допустим мы передаем аргумент id термина таксономии, по сути должны выбраться все ноды с этим термином, но если использовать зависимость (relationship) например parent term (родительский термин) к этому аргументу, то выберутся ноды у которых id родительского термина тот который мы передали как аргумент.
- Для комментирования войдите или зарегистрируйтесь
Большое спасибо и нижайший поклон - вот теперь разобрался. Меняется не само значение аргумента/фильтра/поля - а то, к чему оно применяется.
Возник встречный вопрос: на этом примере - как при передаваемом этом же id отобразить ноды родительского термина? Т.е. по ходу дела id должен как-то преобразоваться в родительский.
Или:
Если в аргумент передаётся id текущей ноды, как отобразить другие ноды, связанные не с ней самой, а с её переводом на текущий язык (скажем, через nodereference - хотя у меня немного др. задача)?
- Для комментирования войдите или зарегистрируйтесь
как при передаваемом этом же id отобразить ноды родительского термина?
просто использовать в качестве аргумента не taxonomy term id а taxonomy parent term
По второму что-то я с переводами дела не имел пока, даже и не отвечу точно.
- Для комментирования войдите или зарегистрируйтесь
ОК. Значит, как я понял, средствами Views - никак. Либо самому писать дополнительный аргумент для Views на php (что в моём случае не подходит, т.к. нее умею), либо ставить модуль, который этот аргумент добавит (что опять же не подходит, т.к. разработчик модуля не включил такую возможность).
Благодарю за помощь.
- Для комментирования войдите или зарегистрируйтесь




Комментарии