Вывод полей связанной ноды

Аватар пользователя imarat imarat 30 ноября 2011 в 23:13

Здравствуйте.
Есть два типа материала.
первый связан со вторым, соответственно после создания ноды первого типа в ней выводятся ссылки на связанные ноды второго типа
но нужно помимо простой ссылки выводить еще поля этой связанной ноды

подскажите, как реализвавать
гугл юзал, пробовал модуль Node Reference View Formatter
но нет ни описания, ни ридми, так и не заработало
есть ли аналоги Node reference views для семерки?
так же юзал модуль reference block, который по описанию добавляет блок со связанным содержимым,
однако никаких изменений на сайте после его добавления замечено не было

спасибо

апд: выяснилось, что reference block для иных целей, с этим понятно, но проблема не решена

0 Thanks

Лучший ответ

Аватар пользователя heron77 heron77 21 марта в 17:59

Всем привет еще раз! Я таки нашел рецепт решения проблемы. И нашел его здесь. На дрюпал.ру. Самое смешное, что этот рецепт я написал сам пару лет назад. А потом забыл благополучно. Помню только, что тоже долго искал и эксперементировал скомпоновал решение на основе нескольких прочитанных постов по близкой, но другой теме.
Итак рецепт (Здесь дублирую потому, что по старому адресу долго искал)

Выводим представление материалов на которые ссылается текущий материал (Drupal 7).

Изначально необходимо установить модуль References или
Entity reference

1. В ссылающийся материал добавляем поле (если надо, множественное) типа "Ссылка на материал". В настройках выбираем чекбоксами на какие типы материалов будут идти ссылки.

2. (необязательное действие) Если нам нужно КРАСИВОЕ и понятное отображение материалов при выборе во время создания ссылающегося материала и СОЗДАНИИ в нем ссылки на существующий материал, то надо до создания поля (или повторно вернувшись в его настройки) выполнить следующее:

2.1. Создаем представление для этой красоты. Тип представления будет не блок или страница, а "Ссылка на сущность". Далее как обычно выбираем поля и т.д. В общем впихиваем все, что нам хочется, чтобы отображалось при создании ссылки в это новое представление.

2.2. Возвращаемся в настройки ссылающегося материала в настройки поля типа "Ссылка на материал". Там есть раздел "ПРЕДСТАВЛЕНИЯ - МАТЕРИАЛЫ, ДОСТУПНЫЕ ДЛЯ СООТНОШЕНИЯ". В нем и указываем это вновь созданное представление.
2.3. Вуаля! Теперь можно видеть не только title материала при выборе ссылки, но и другие поля (картинки например). Это позволяет выбирать (определять) материал не только по заголовку (title), но и по другим полям материала (node)

3. Создаем представление для отображения привязанных нод. Создаем представление типа Блок с фильтром на материалы на которые будут идти ссылки из поля. В нем делаем все обычные необходимые настройки вывода (поля, отображения, фильтры и т.д.)

3.1. В раздел "Отношения" созданного вьюса добавляем: Содержимое: поле-ссылка - реверс (Ссылка на сущность: Ссылающаяся сущность)

3.2. В раздел "Контекстные фильтры" добавляем: Содержимое: Nid и в настройках Связь: поле-ссылка из п.3.1.

4. Выводим созданный блок-пердставление в содержимом (в регионе). При необходимости (возможности) фильтруем вывод блока - улучшит производительность. Например выводим только на страницах тех материалов, у которых есть такое поле-ссылка

Комментарии

Аватар пользователя imarat imarat 1 декабря 2011 в 7:36
"querk" wrote:

Node Reference

. Так я им и пользуюсь, материалы уже связаны, ссылки на связанные материалы выводятся. проблема в том, что одних ссылок мало, надо по каждой связаной ноде выводить еще несколько определенных полей этой ноды. Вывести целиком связанную ноду в теле родительской ноды получатся, а вот через вьюху нет, не разберусь с аргументами. Ставил модификация (так называется поле референс в типе материала), и привязывал к ид материала из текущего урла, и не привязывал, нужного отображения как не было, так и нет

Аватар пользователя imarat imarat 1 декабря 2011 в 12:50

drupby, спасибо, посмотрю. iNFerNo, подробнее бы, какие указывать аргументы? По полю референс указывал, результат не тот

Аватар пользователя iNFerNo iNFerNo 1 декабря 2011 в 12:59

ну взаимосвязь указываешь

добавляешь поле и вполе выбираешь взаимосвязь и уже поле заголовок будет выводится от взаимосвязанной ноды например.

Аватар пользователя imarat imarat 1 декабря 2011 в 17:02
"iNFerNo" wrote:

ну взаимосвязь указываешь
добавляешь поле и вполе выбираешь взаимосвязь и уже поле заголовок будет выводится от взаимосвязанной ноды например

Я так делал, добавлял взаимосвязь Содержимое модификация(поле референс)
в разделе Поле добавлял поля и указывал связь с Содержимое модификация.
В результате не выводилось ничего вообще
может быть как-то иначе можно?

вроде и на видео от drupby все делается так, почему не работает не пойму

апд: Судя по всему баг в модуле
поставил dev версию, все работает

кстати такое уже бывало, мне даже кажется что
с дев вообще проблемы возникают реже (у всех модулей)
хотя и рекомендуют ставить стабильные релизы

Аватар пользователя imarat imarat 1 декабря 2011 в 17:07

Доп вопрос: не все ноды пригодны для связи. Поэтому нужно сделать так, чтобы пользователь при создании ноды мог выбрать только пригодные(у них отличается значение определенного поля). Думаю готового решения на это нет, спрашиваю на всякий, а вдруг...

Аватар пользователя Semantics Semantics 15 марта в 15:20

Добавляете релейшен по нужному полю и выводите поля зависимой ноды или ссылающейся.
В чём проблема?

Аватар пользователя Orion76 Orion76 15 марта в 16:44

Проблема скорее всего в том, что актуальной документации по таким базовым вещам, хорошо структуированной и на "понятном" - практически нет.

Поэтому и приходиться "популяризировать drupal" по тыще раз разъясняя одни и те же элементарные вещи в коментах на drupal.ru

Аватар пользователя Semantics Semantics 15 марта в 16:57
3

Проблема в том, что многие участники друпал.ру - готовы писать простыни о том, что их помощь никто не принимает, вместо того, чтобы написать короткую заметку о работе с референсами

Аватар пользователя Orion76 Orion76 16 марта в 1:28
1

Чтобы некий более-менее статичный контент на drupal.ru можно было легко находить при необходимости, необходима как минимум некая постоянная иерархическая интуитивно-понятная структура организации этого контента.
Как любят спрашивать некоторые "уполномоченные" - а где это уже применяется?

А я отвечу - "справка" на орге и не только и уже давно.

А почему на drupal.ru нет банальной "справочной системы" по drupal как на орге?

Ведь каждый разработчик знает, что хорошая понятная для пользователей документация к продукту это 60% гарантии, что продуктом можно будет пытаться пользоваться.

А если я напишу статью, например про стандартный способ поиска причин проблем на сайте (друпал журнал, сервер-лог и т.п.) через сколько часов она уйдет на другую страницу из треккера и через сколько дней про нее больше никто никогда не вспомнит?

А мне это зачем? пару часов побыть известной личностью, которой говорят спасибо?
Мне конечно будет приятно, но потом будет мучительно больно.
Потом статья канет в лету и пиши по новой?
Это, вы считаете, нормально?
Я нет. Потому что я не мазохист.. уж извините.. что выросло то выросло..

@Semantics, а Вы когда последний раз на drupal.ru чтонибудь коммитили?

Аватар пользователя Semantics Semantics 16 марта в 10:48
1

О чём я первоначально и говорил.
Ты способен найти 100500 оправданий, лишь бы по делу ничего не написать.

  • А я отвечу
  • А почему
  • А если я
  • ...

Друпал.ру! Станьте друпал.оргом! Тогда всё будет классно!
Не мучайся, не пиши на д.ру ничего, пожалуйста, ты же не мазохист.

@Semantics, а Вы когда последний раз на drupal.ru чтонибудь коммитили?

А деятельность в проекте ограничивается git commit?
git push не нужно делать?
Я на этой неделе минимум часов 6 затратил на обсуждения и переговоры, пишу, знаете ли, план где контент от людей, которые не ищут оправданий, теряться не будет, а старый будет использован с толком.
Ребята контент флагами помечают, что на доработку, что на мусор.
Только у @Orion76 жизнь боль и всё тлен

Аватар пользователя Orion76 Orion76 16 марта в 11:02
Semantics wrote:

... способен найти 100500 оправданий, лишь бы по делу ничего не написать.

Вот Вы сами себе и ответили..

Аватар пользователя ivnish ivnish 16 марта в 11:54

Соглашусь с Semantics

Вместо того, чтобы заниматься делом, ты только и ноешь, что "мало статей", "плохое сообщество" и т.д. Мало статей? Возьми и напиши.

Я писал недавно о том, что лично меня волновало. Тыц и тыц, @gun_dose недавно писал.

И только у тебя какие-то оправдания.

Аватар пользователя Orion76 Orion76 16 марта в 12:24
1

Перечитайте вдумчиво, пожалуйста, мой первый коммент.
Там совсем не про то что "никто не пишет", а про организацию того, что "кто-то написал".

Вот Вы дали ссылки на свои статьи.
Если бы Вы не дали эти ссылки непосредственно мне, то я про них никогда бы не узнал-)

Т.е. если бы я не знал про них, но информация, в них содержащаяся, мне вдруг понадобилась,
то "чисто" на drupal.ru я бы их скорее всего никогда не нашел.

Потому как нет никаких инструментов и приспособлений это сделать.
Про это и был коммент.

А через пару дней, когда данный топик уйдет вниз, про эти ссылки опять уже никто не вспомнит,
а если и найдет, то только случайно, если гугл вдруг выдаст их в топе поискового запроса.

Вы считаете что это нормально?

Аватар пользователя madt madt 16 марта в 13:53
2

Какие у тебя есть конкретные предложения по организации контента и что ты готов сделать для их реализации?

Аватар пользователя Orion76 Orion76 17 марта в 0:21

План минимум:
1. Продублировать документацию по drupal на родном языке рускоязычного сообщества drupal:
https://www.drupal.org/docs/8

Конечно не сразу всю, а проанализировав наиболее часто задаваемые вопросы на форуме поддержки, определить приоритеты и потихоньку, но стабильно регулярно добавлять подразделы и статьи.

2. "Книга рецептов" - сборник статей-руководств по реализации часто используемого функционала вэб-приложения.
Аналог "блогов" xandeadx, niklan и д.р., но централизовано в одном месте.
Банальный каталог статей на таксономии.

Когда-то этим начинали заниматься..
Были же на поддоменах "разделы" с документацией.
Вот так же и продолжить, на поддоменах, на drupal 8.

Что я могу сделать?...
Ну тут по сути банальные каталоги на таксономии.
Значит в основном нужна тема оформления в текущем стиле drupal.ru
И контент..

Могу и тему и контент-)

Аватар пользователя heron77 heron77 21 марта в 17:59

Всем привет еще раз! Я таки нашел рецепт решения проблемы. И нашел его здесь. На дрюпал.ру. Самое смешное, что этот рецепт я написал сам пару лет назад. А потом забыл благополучно. Помню только, что тоже долго искал и эксперементировал скомпоновал решение на основе нескольких прочитанных постов по близкой, но другой теме.
Итак рецепт (Здесь дублирую потому, что по старому адресу долго искал)

Выводим представление материалов на которые ссылается текущий материал (Drupal 7).

Изначально необходимо установить модуль References или
Entity reference

1. В ссылающийся материал добавляем поле (если надо, множественное) типа "Ссылка на материал". В настройках выбираем чекбоксами на какие типы материалов будут идти ссылки.

2. (необязательное действие) Если нам нужно КРАСИВОЕ и понятное отображение материалов при выборе во время создания ссылающегося материала и СОЗДАНИИ в нем ссылки на существующий материал, то надо до создания поля (или повторно вернувшись в его настройки) выполнить следующее:

2.1. Создаем представление для этой красоты. Тип представления будет не блок или страница, а "Ссылка на сущность". Далее как обычно выбираем поля и т.д. В общем впихиваем все, что нам хочется, чтобы отображалось при создании ссылки в это новое представление.

2.2. Возвращаемся в настройки ссылающегося материала в настройки поля типа "Ссылка на материал". Там есть раздел "ПРЕДСТАВЛЕНИЯ - МАТЕРИАЛЫ, ДОСТУПНЫЕ ДЛЯ СООТНОШЕНИЯ". В нем и указываем это вновь созданное представление.
2.3. Вуаля! Теперь можно видеть не только title материала при выборе ссылки, но и другие поля (картинки например). Это позволяет выбирать (определять) материал не только по заголовку (title), но и по другим полям материала (node)

3. Создаем представление для отображения привязанных нод. Создаем представление типа Блок с фильтром на материалы на которые будут идти ссылки из поля. В нем делаем все обычные необходимые настройки вывода (поля, отображения, фильтры и т.д.)

3.1. В раздел "Отношения" созданного вьюса добавляем: Содержимое: поле-ссылка - реверс (Ссылка на сущность: Ссылающаяся сущность)

3.2. В раздел "Контекстные фильтры" добавляем: Содержимое: Nid и в настройках Связь: поле-ссылка из п.3.1.

4. Выводим созданный блок-пердставление в содержимом (в регионе). При необходимости (возможности) фильтруем вывод блока - улучшит производительность. Например выводим только на страницах тех материалов, у которых есть такое поле-ссылка

Аватар пользователя heron77 heron77 21 марта в 18:09

Пункт 4 еще может быть и таким

4. Устанавливаем модуль Entity Reference Views Formatter (если ранее установили Entity reference) или Node Reference View Formatter (если ранее ставили модуль References). Далее идем в настройки типа материала (ноды) в которой стоит поле-ссылка и в закладке "Управление отображением" в формате поля ставим "Views output", а в настройках формата указываем созданное в п.3. Представление