Как настроить / стилизовать / оформить вывод настраиваемого типа контента в Drupal 8?

Я создаю собственную «стильную» подтему Drupal 8. Теперь я создал тип контента под названием «s-box» с некоторыми текстовыми полями. Я также создал представление под названием «scol», которое представляет собой список «s-box». Этот "scol" добавлен как блок на боковую панель сайта.

Это хорошо работает (это означает, что отображается все), но я хочу, чтобы некоторые поля типов контента были вложены в определенную разметку (например, заголовок в h4). Предпочтительно, я хочу настроить весь вывод для этого типа содержимого «s-box».

Но я не могу понять, как должно быть название веточки. Пока я пробовал:

node--s-box.html.twig (what I thought would be the correct name)  
block--scol.html.twig  
field--node--s-box.html.twig  
field--s-box.html.twig  
node--scol.html.twig  
scol--s-box.html.twig

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

Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Разработка Drupal и AngularJS: Идеальное сочетание для вашей веб-стратегии
Разработка Drupal и AngularJS: Идеальное сочетание для вашей веб-стратегии
Один опытный веб-разработчик назвал комбинацию Drupal и AngularJS "сочетанием, созданным на небесах". Почему так? Потому что вместе они могут создать...
1
0
447
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Просто включите Отладка Twig. См. Отладка шаблонов Twig. После того, как вы включили Twig Debugging, вы получите предложение по названию шаблона, напечатанное в виде комментариев HTML прямо в вашей разметке. Там вы увидите, как именно этот шаблон должен называться.


Ваш sites/development.services.yml должен выглядеть следующим образом:

# Local development services.
#
# To activate this feature, follow the instructions at the top of the
# 'example.settings.local.php' file, which sits next to this file.
parameters:
  http.response.debug_cacheability_headers: true
  twig.config:
      debug: true
      auto_reload: true
      cache: false
services:
  cache.backend.null:
    class: Drupal\Core\Cache\NullBackendFactory

И вам нужно добавить следующую строку в ваш settings.php или settings.local.php:

/**
 * Enable local development services.
 */
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';

Что в конечном итоге даст вам что-то вроде этого:

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

И не забудьте очистить кеши! Многократно.

Спасибо! У меня это уже было включено, но теперь вы снова указываете на это, я нашел решение. Я не заметил, что могу получить доступ ко всем полям в "views-view-fields.html.twig".

v86 18.10.2018 14:26

Решение:

Поскольку мой тип контента находится в представлении, я могу получить доступ ко всем полям в views-view-fields--[my-view].html.twig (в моем случае: views-view-fields--scol.html.twig)

Ключ - это массив fields. Я могу получить доступ ко всем полям по их машинному имени. Как fields.title.content или fields.field_foo.content.

Таким образом, я могу стилизовать здесь весь вывод s-box.

Другие вопросы по теме