Рейтинг:0

Как получить идентификатор объекта из строки представления и передать его в шаблон списка элементов?

флаг au

У меня есть представление, которое возвращает строки сущностей. Каждая сущность имеет несколько полей с несколькими значениями.

Структура примерно такая:

  • Поле 1:

    • Пункт А
    • Пункт Б
    • Пункт С
    • ...
    • Пункт Н
  • Поле 2:

    • Пункт А
    • Пункт Б
    • Пункт С

Поле 2 содержит значения, связанные с элементом B поля 1. При отображении поля 1 в результатах просмотра я хотел бы отображать их так:

Поле 1: Элемент A, Элемент B (Поле 2, Элемент A, Поле 2, Элемент B), Элемент C, Элемент D

Поскольку это поле с несколькими значениями Views использует шаблон item_list. Мой план состоял в том, что я добавлю некоторые условные выражения в этот шаблон, чтобы, если должен был отображаться элемент B поля 1, я использовал Twig Tweak, чтобы добавить в него значения из поля 2, встроенные в него. Единственная проблема заключается в том, что для этого мне нужен идентификатор объекта строки. На всю жизнь я не могу понять, как передать эту информацию в шаблон item_list. Этот шаблон кажется полностью удаленным из представления и не имеет возможности сослаться на него.

Я пытался использовать различные функции в моем файле темы, чтобы получить NID строки результата и передать его как переменную в шаблон list_item, но ничего не получалось, кроме неудачи. Я выяснил, как получить пользовательскую переменную в шаблоне item_list preprocess_item_list, но я не могу понять, как получить NID строки в эту функцию.

Любая помощь будет оценена по достоинству.

sonfd avatar
флаг in
Вероятно, проще всего создать собственный форматировщик поля для поля 1, а не пытаться сделать это в препроцессах/twig.
Рейтинг:0
флаг cn

Добавьте идентификатор узла в виде скрытого поля в представление, затем внутри шаблонов {% для элемента в элементах %} вы сможете ссылаться на него как на item.content['#node'].0.nid|raw, но вы можете нужно кинуть item.content, чтобы узнать фактическое значение.

fallenturtle avatar
флаг au
На самом деле это поле в представлении, но я не могу получить к нему доступ из шаблона элемента списка.
fallenturtle avatar
флаг au
Я закончил тем, что сделал это более хакерским способом. Я обнаружил, что могу получить то, что хочу, используя отображение представления без представлений, заменив вывод в шаблоне поля «Представления» функцией поля Twig Tweak, по существу минуя отображение содержимого в представлениях.

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

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