Здравствуйте!
Столкнулся с проблемой, которую не знаю, как решить. Суть такова, имеется несколько типов страниц, предназначенных для разного содержимого (отдельно матчи, отдельно информация о команде-сопернике, например). Хочется связать их между собой так, чтобы потом делать красивую выборку через views. Как я себе это представляю: При создании новой ноды матча (type1) можно из выпадающего списка выбрать соперника (тип содержимого type2), при этом в качестве значения будет записываться не название команды соперника, а id той самой ноды, которая ей посвящена.
Например, я создаю ноду матча, который состоится 14 декабря, прописываю дату время, а потом указываю соперника — открываю выпадающее меню, где могу выбрать «Арсенал» (nid 5), «Астон Виллу» (nid 17) или «Болтон» (nid 19). Если выбираю «Арсенал», в качестве значения прописывается 5, «Астон Виллу» — 17 и т.д.
Подскажите, пожалуйста, как это реализовать, если учесть, что список возможных соперников будет постоянно пополняться? Как я понимаю, нужно написать функцию на php, которая будет пробегать по всем нодам type2, доставать оттуда имена соперников (teamname) и создавать массив со значениями вида nid => teamname. Правильно? Помогите, пожалуйста, с написанием такой функции.
И ещё, подскажите, пожалуйста, какой тип искомого поля «соперник» использовать в ноде type1 — число (integer) или ссылка на ноду?
Заранее спасибо за помощь!
UPD: Перечёркнутый ныне вопрос решился элементарно — было достаточно выбрать в качестве типа значения «ссылку на ноду», и всё. Но возник новый вопрос — как в качестве вывода давать не заголовок_со_ссылкой/заголовок_без_ссылки/тизер/нода_целиком/хидден, а значение определённого поля (предположим, field_teamshortname)?
Комментарии
Не совсем понятно что и как.
Насколько я понимаю матч предполагает двух соперников. А тут он почему - то один.
Во - вторых если нужна просто возможность выбирать название ноды из списка, то тип поля "ссылка на ноду" разрешает такое безо всяких проблем.
Спасибо за ответ!
Просто у меня сайт посвящён одному клубу, поэтому надо выбирать лишь одного из соперников -)
Да, всё в этом компоненте оказалось проще, чем я думал. Достаточно было сделать лишь поле ссылкой на ноду, как всё решилось. Спасибо большое! А я всё не решался попробовать.
Поюзал «ссылку на ноду», понял, что это почти то, что надо, но всё же не совсем... Из этого родился новый вопрос.
При выборе ссылки на ноду вывод может представляться в следующих видах: заголовок со ссылкой на ноду, заголовок без ссылки на ноду, тизер, вся нода, спрятанный. Как изменить это так, чтобы выводилось содержимое произвольного поля cck, имеющегося в ноде? Предположим, поля field_teamshortname?
В меню конфигурации полей типа "ссылка на ноду" есть возможность использовать view для составления списка нод для выбора. В этот view можно впихнуть всё, что нужно, в том числе значение любого поля.
Только надо помнить, что если использовать свой view для выбора узла, пункт Content types that can be referenced: перестаёт работать. Поэтому придётся определить тип нод в фильтре view.
Спасибо за подробный ответ. Решил им воспользоваться, но что-то, видимо, упустил:
1. Создал новый вьюс, который у меня из страниц нужного типа достаёт значение поля competition_abbr, сортирует его по Name ASC и выводит в виде списка;
2. Посмотрел превью нового вьюса — выводится список, состоящий из одних аббревиатур;
3. Открыл на редактирование поле «Турнир» типа «ссылка на ноду» и выбрал пункт «View used to select the nodes:»;
4. В выпадающем списке нашёл свой вьюс competition_abbr и сохранил изменения.
5. Открыл нужную страницу матча на редактирование. Имеется выпадающее меню, каждый пункт которого теперь имеет вид «EPL - Заголовок: Премьер-лига», «FAC - Заголовок: Кубок Англии» и так далее. Выбираю, к примеру, первый пункт и сохраняю.
6. Открываю страницу того же матча на просмотр. Вижу «Турнир: EPL».
Судя по всему, я в Вашем объяснении упустил какой-то важный момент, но какой?
1. «Content types that can be referenced:» я оставил прежним, раз он всё равно не играет никакой роли при использовании вьюс в данном случае.
2. Пробовал разные виды «Display Fields» — всё то же самое, отображается заголовок со ссылкой на ноду/заголовок без ссылки и т.д.
Подскажите, пожалуйста, где ошибка?
Попробую ещё раз поднять этот вопрос, а то за месяц так и не нашёл решения -( Как мне сделать, чтобы в итоге в ноду вставлялось значение поля, вытащенного мной через views?