Поля, которые импортируются через конфигурацию, по умолчанию отключены. Как их включить?
В пользовательском модуле для Drupal 8 я могу добавить новый тип контента со всеми его полями, но все поля по умолчанию отключены. Как мне включить их во время установки моего модуля?
Редактировать Для ясности, поля модуля не включены по умолчанию в разделе "Управление отображением формы". Как включить (или отключить) поля, используя что-то вроде хук-установки?
Редактировать 2 Наряду с включением полей по умолчанию во вновь созданном типе контента, установка этого модуля также обновляет поля в существующем типе контента (Статья), и эти поля также отключены.
Редактировать 3 отключено означает, что они отображаются как отключенные на дисплее формы для типа контента, и пользователи не могут видеть поля при добавлении контента.
Должен быть код, который я могу запустить через hook_install, который включил поля для типа контента?
3 ответа
Я предполагаю, что под словом "отключено" вы подразумеваете, что поля не отображаются при создании экземпляра вашего типа контента.
Лично я использовал пользовательский интерфейс, чтобы настроить отображение каждого из моих полей на странице "Управление отображением", предусмотренной для каждого типа контента. Я перетаскиваю поля, которые хочу включить, из отключенного раздела, как обычно.
Когда я доволен тем, как расположены поля, я использую блестящие встроенные функции экспорта (думаю, функции в Drupal 7, но гораздо лучше), чтобы сгенерировать файлы конфигурации.yml для моего типа контента.
Этот процесс блестяще описан в этой статье на сайте Drupal. В этом случае, так как это просто конфигурация, для каких полей мы хотим отобразить, это должно быть так же просто, как экспорт конфигурации "Entity View Display" для типа контента в файл.yml. (обратите внимание, что вам нужно правильно называть свои файлы yml, это объясняется в статье (и я думаю, что модуль экспорта в любом случае предоставляет автоматически сгенерированное имя)).
Вот как выглядит экспорт для одного из моих типов контента:
После того, как я сгенерировал файлы конфигурации, которые я хочу применить к Drupal, когда модуль включен, это действительно так же просто, как создать две директории в корневой директории модуля:
"./Config/install"
и поместив файлы конфигурации в каталог установки.
Теперь, когда модуль установлен впервые, Drupal будет применять конфигурацию, предоставленную файлами в каталоге /config/install.
Этот процесс разработан здесь: https://www.drupal.org/docs/8/creating-custom-modules/include-default-configuration-in-your-drupal-8-module
При экспорте поля вы также должны экспортировать:
- "Полевая декларация"
field.field.[entity_type].[bundle].[field_name].yml
файл. Не забудьте добавить объявление о повторном использовании полей - "Полевое хранение"
field.storage.[entity_type].[field_name].yml
файл - "Отображение формы", где вы изменили конфигурацию поля.
core.entity_form_display.[entity_type].[budle].default.yml
- "Управление дисплеем", где вы изменили конфигурацию поля.
core.entity_view_display.[entity_type].[budle].[view_mode_id].yml
файлы (если у вас есть Default, Teaser и т. д.) "Сущность", если сущность
new. [entity_type].[type|paragraph_type|vocabulary].[bundle].yml
файлЯ рекомендую вам использовать
drush cex/cim
msgstr "команды для импорта и экспорта конфигурации.
Я не знаю слишком много о Drupal 8, но когда я пытаюсь создать пользовательский тип контента, чтобы использовать эту статью.
https://www.drupal.org/docs/8/api/entity-api/creating-a-custom-content-type-in-drupal-8
Затем, когда я включаю наш пользовательский модуль, тип контента успешно создается, и поля типа контента также включены.
Также я пытаюсь создать узел в этом типе контента, то узел успешно создан.
Поэтому, пожалуйста, проверьте эту статью.
Это может быть полезно для вас.
Спасибо,