Как настроить / стиль / тему вывода пользовательского типа контента в Drupal 8? - PullRequest
0 голосов
/ 18 октября 2018

Я создаю собственную "классную" подтему 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 и назначить поля типа контента.

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Решение:

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

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

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

0 голосов
/ 18 октября 2018

Просто включите Отладка веток .См. Отладка шаблонов Twig .После того, как вы включите отладку Twig, вы получите предложение о присвоении имен шаблонам, напечатанное в виде 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:

/**
 * 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
-->

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...