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