Рейтинг:1

Извлекайте и объединяйте значения из вложенных полей: представьте все данные об авторских правах в одном блоке.

флаг jp

У меня есть тип контента, использующий медиа-поля и использующий абзацы, которые также имеют медиа-поля.

Типичная страница может выглядеть так:

  • узел
    • field_media1 (здесь одно значение)
      • field_copyright
      • field_img
    • field_paragraphs (здесь несколько значений)
      • field_media2
        • field_copyright
        • field_img

Я хотел бы вытащить все визуализированные field_copyright содержание в hook_node_preprocess и вставьте его в переменную, которая будет отображаться внизу страницы.

Я могу представить, что я могу сделать рекурсивный цикл вниз по $узел сущность в hook_node_preprocess, но затем мне нужно сгенерировать массивы рендеринга для всех этих необработанных данных; мне кажется, что я хочу вытащить обработанные версии этих полей, чтобы они не включались при отображении медиа-полей.

Есть ли способ сделать это?

4uk4 avatar
флаг cn
Я бы использовал блок Views с контекстным фильтром для текущего узла.
leymannx avatar
флаг ne
Как насчет другого режима просмотра как для узла, так и для абзацев. А затем визуализировать текущий узел (возможно, в плагине пользовательского блока или блоке представлений) в этом новом режиме просмотра, который сам отображает абзацы в их новом режиме просмотра?
4uk4 avatar
флаг cn
@leymannx, да, это отличная идея, если вы не против написать блочный плагин.
leymannx avatar
флаг ne
@4k4 â Или в блоке Views, конечно. Ты был быстрее.
флаг jp
Блок просмотров звучит жестко. Сможет ли он получить доступ к этим абзацам и выбрать поля из соответствующих типов абзацев и объединить их с другими полями? Я тоже думал о решении @leymannx, но думаю, что лучше сам отрисую необработанные данные, чем настраивать целый другой громоздкий набор режимов просмотра. Я задавался вопросом, может ли модуль `mymodule_process_node` сделать это, но я еще не добился этого.
leymannx avatar
флаг ne
Блок представлений, отображение содержимого, визуализированный объект в режиме просмотра XY. Настройте контекстный фильтр для получения идентификатора текущего узла из URL-адреса. Это не так сложно. Все это можно сделать из пользовательского интерфейса. Нет необходимости кодировать. Вам решать.
флаг jp
О, я вижу, просто использую Views для представления визуализированного объекта. Спасибо

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.