2-й день туплю и никак не могу составить запрос во views
Схема такая: Есть тип данных: "Организация", в нем есть поле "Куратор" типа User Reference. Необходимо при передаче параметром nid записи "Организация" получить записи из блога пользователя, чей uid записан в поле "Куратор".
Чувствую, что хожу рядом, но никак не соображу где порыться в месте с собакой
Заранее благодарю за помощь!
Комментарии
Готового решения у меня нет (возможно, есть доп. модули к Views, самому интересно узнать).
Я бы сделал следующим образом: создал 2 вьюва. Первый - на тип материала "Организация", Взаимосвязь по полю "Куратор", аргумент - nid Организации. На выходе - uid куратора. Второй вьюв - на тип материала "Блог", аргумент - uid пользователя. Далее, в шаблоне вывода первого вьюва программно вызывать второй вьюв, подставляя аргументом текущий uid. Также, можно посмотреть SQL-запросы двух вьювов и объединить их в один.
Я бы сам SQL запрос написал и не ломал голову с этими вьюхами...
Спасибо, коллега.
Это решение мне тоже пришло в голову. Так же как и решение хранить nid организации в профиле у Куратора. Но это сильно меняет глобальную задачу, большую часть которой я уже сделал, да и как-то не хочется разочаровываться в том, что выюс не всемогущ...
1. Создаем View, который показывает записи блога
2. Создаем Аргумент - uid
3. Для настройки Action to take if argument is not present: - Provide default argument - PHP code
4. Пишем код, который загрузит ноду по nid и вернет значение поля куратор
Да, ваше решение полегче. Но зато у меня проще будет вывести в случае необходимости информацию по куратору (фото,ФИО,...). А также проще сделать переход, если профили кураторов решат хранить в нодах.
Лишний раз убеждаешься в гибкости и мощи Друпала.
Мой случай только дополняет ваше решение функцией Default Argument - если его вызывать с аргументом, то отработает как обычно. Т.е. его можно вызывать из другой вьюхи, например.
Я бы делал свой View блоком, который можно вывести, скажем, на странице куратора и/или организации.
Да, я тоже пользуюсь Default Argument, удобная штука.
Согласен, я так и делал: на странице Организации блок со ссылкой на профиль Куратора, а в профиле блок с информацией по куратору (в данном случае, список статей). Топикстартеру нужно 2 в 1 - имеет право.
А аргумент же имеется, правда это nid, а не uid. Система сама распознает, что аргумент "не того формата" и перейдет к выполнению кода?
И если аргумента нет, то как я вытащу этот Nid?
Сделал! Спасибо, друзья, за помощь!
Внесу свои дополнения.
1. Действительно, если передается в параметрах nid, то для uid это означает, что параметр не передается. Поэтому Пункт 3 из ответа уважаемого G.A. Vinogradov работал, в чем я изначально сомневался
2. Я зачем-то начал создавать Зависимость, чем запутал себя
3. CKEditor gпочему-то не отключился при редактировании поля для ввода PHP кода, что очень мешало. Не нашел другого способа убрать редактор кроме как отключив javascript в настройках views
Еще раз спасибо Goodboy и G.A. Vinogradov!