Рейтинг:2

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

флаг cn

У меня есть сайт Drupal 8.9.17. Моя тема (на основе Гирлянда) входит в шаблоны/page.html.twig:

{% если узел %}
[...]
Последнее обновление {{ node.changed.value|format_date('custom', 'D M d Y') }}
[...]
{% конец%}

Это отображает свойство при просмотре узлов по адресу: /узел/<идентификатор>

Однако при попытке просмотреть версии на /node/<nid>/revisions/<vid>/view, format_date() завершается с ошибкой "null timestamp", поэтому я предполагаю, что версия загружается неправильно.

Как правильно получить доступ к свойству, чтобы оно работало на обоих маршрутах?

apaderno avatar
флаг us
Правильный способ должен показывать его в файле шаблона *node.html.twig*, который используется только для узлов.
jhnc avatar
флаг cn
@apaderno - это ревизия узла, а не узел?
jhnc avatar
флаг cn
@apaderno на странице page.html.twig есть комментарий о том, что «Доступна полная загрузка узла, если есть автоматически загружаемый узел». Разве `{% if node %}` не должно поймать, если это не так?
apaderno avatar
флаг us
Шаблон *node.html.twig* также используется для ревизий узлов. Вопрос касается шаблона *page.html.twig*, который используется для каждой страницы.
Рейтинг:1
флаг us

Для информации, показанной для узла, я предпочитаю узел.html.twig шаблон, так как не требуется сначала проверять, отображается ли страница для узла. узел.html.twig шаблон уже содержит следующие строки.

{% если display_submitted %}
  <нижний колонтитул>
    {{автор_картинка}}
    <div{{авторские_атрибуты}}>
      {% trans %}Отправлено {{ author_name }} {{ date }}{% endtrans %}
      {{ метаданные }}
    </div>
  </нижний колонтитул>
{% конец%}

Если бы я хотел изменить способ отображения даты или дату, не удаляя другую информацию, отображаемую в файле шаблона, я бы заменил эти строки следующими.

{% если display_submitted %}
  <нижний колонтитул>
    {{автор_картинка}}
    <div{{авторские_атрибуты}}>
      {% trans %} Последнее обновление {{ node.getChangedTime()|format_date('custom', 'D M d Y') }}{% endtrans %}
      {{ метаданные }}
    </div>
  </нижний колонтитул>
{% конец%}

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

{% если display_submitted %}
  <span class="submitted">{{ date }} {{ author_name }}</span>
{% конец%}

Вы можете заменить эти строки следующими строками или следующими, если хотите просто изменить формат даты.

{% если display_submitted %}
  <span class="submitted">{% trans %}Последнее обновление {{ node.getChangedTime()|format_date('custom', 'D M d Y') }}{% endtrans %}</span>
{% конец%}
{% если display_submitted %}
  <span class="submitted">{{ node.getChangedTime()|format_date('custom', 'D M d Y') }} â {{ author_name }}</span>
{% конец%}

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

jhnc avatar
флаг cn
Похоже, это отличается от [Garland node.html.twig](https://git.drupalcode.org/project/garland/-/blob/8.x-1.x/templates/node.html.twig) который не содержит ``. Я уверен, что со временем сайт перейдет на лучшую тему, но пока я остановился на ней.
apaderno avatar
флаг us
Это не сильно отличается: просто посмотрите на строку, используя `{{ date }}`, и замените ее нужным кодом, как показано в обновленном ответе.Мне не удалось найти тему Garland; Я не думал смотреть между внесенными темами.
jhnc avatar
флаг cn
Я только что внимательно посмотрел на настроенную гирлянду, которую мне дали, и не вижу ничего, что требует, чтобы код был в page.html.twig, поэтому использование node.html.twig кажется подходящим способом

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

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