Тематика Drupal 8 - просмотрите все опубликованные статьи и распечатайте определенный раздел

Я пытаюсь создать свою первую тему Drupal 8. На главной странице я хочу перечислить все статьи с заголовком, кратким изложением, датой публикации и т. д.

Я более или менее достиг этого, используя представления. В основном {{ page.content }} в twig, но он оказался действительно негибким, и я действительно не получил желаемых результатов. Что я хочу сделать, так это просто перебрать все статьи и распечатать каждый раздел этой статьи «вручную». Например:

{% for page in pages %}
  {{ page.content.title }}
  {{ page.content.datePosted }}
  {{ page.content.body }}
{% endfor %}

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


person user3195845    schedule 28.05.2019    source источник


Ответы (1)


Я рекомендую использовать просмотры. Настройте просмотр (фильтр по типу контента и т.д.), у вас есть много параметров для достижения того, что вам нужно.

Настройте представление для отображения «Содержание» и задайте ему режим просмотра (вы можете использовать стандартные teaser, full или создать свой собственный режим просмотра). Затем вы можете создать собственный шаблон для этого:

node--xxxx--teaser.html.twig

Чтобы узнать, как назвать файл пользовательского шаблона, включите Twig Отладка в sites/default/services.yml. Установите переменную отладки на true. И очистить кеш. Затем вы увидите в исходном коде предложение имени шаблона, подобное этому:

    <!-- FILE NAME SUGGESTIONS:
   * node--1--full.html.twig
   * node--1.html.twig
   x node--oeuvre--full.html.twig
   * node--oeuvre.html.twig
   * node--full.html.twig
   * node.html.twig
   -->

В вашей ветке вы можете сделать такой шаблон:

<a href="{{ url }}">{{ content.my_field_image[0] }}</a>

<h2><a href="{{ url }}">{{ node.title.value }}</a></h2>

<p>{{ content.body }}</p>
person Sébastien Gicquel    schedule 29.05.2019