Использование UI для экспорта кода для пользовательских полей
Иногда, когда вы извлекаете тип контента из пользовательского модуля, вы также можете добавить поля, относящиеся к этому типу контента. Возможность автоматически создавать поля позволяет вам удалять и переустанавливать на нескольких сайтах, не оставляя лишних полей и гарантируя, что вы не забудете добавить их. Есть два способа добавить эти поля в вашу кодовую базу, которые мы рассмотрим.
Предпосылки
- Drupal 8.0.x установлен.
- Имейте пользовательский модуль (имя модуля, используемого в этом примере, является foobar).
- Имейте пользовательский тип контента в модуле (Пожалуйста, следуйте инструкциям на родительской странице. Название типа контента будет Бренд автомобиля).
Добавление дополнительных полей к нашему типу контента
Есть два способа сделать этот шаг. Вы можете использовать пользовательский интерфейс для создания полей и экспорта конфигурации в файлы, или вы можете просто написать файлы самостоятельно. Мне нравится использовать первый вариант, просто чтобы убедиться, что вы не пропустите ничего, что будет необходимо, однако поля экспортируются с «field_» в начале, а не «foobar_car_brand_», чтобы связать их с нашим пользовательским типом контента. Мы рассмотрим использование пользовательского интерфейса для создания полей и экспорта кода, который будет использоваться в вашем пользовательском модуле на этой странице.
Использование UI для создания полей
Как указывалось ранее, этот метод немного лучше для пользователей, которые не очень знакомы с требованиями, предъявляемыми Drupal для добавления полей к типу контента.
Включить пользовательский тип контента
Если вы еще не включили модуль foobar в конце родительской страницы, сделайте это сейчас. Если вы сейчас перейдете на страницу «Создание контента», вы увидите, что вы можете создать новый узел типа контента «Car Brand».
/admin/structure/types/manage/car_brand/fields
Теперь, когда у вас включен модуль, вы можете перейти в раздел управления полями вашего типа контента. Добавьте все поля, которые вы хотите. Просто убедитесь, что одним из полей, которое вы добавляете, является «Brand Information» (field_brand_information) типа поля «Текст» (отформатированный, длинный, со сводкой), и удалите поле «Текст». Оставьте все остальное по умолчанию.
Использование UI для экспорта конфигурации полей /admin/config/development/configuration/single/export
Как только вы добавите свои поля, перейдите на страницу синхронизации конфигурации. Вверху есть три вкладки. Выберите «Экспорт» из этих трех. Затем выберите «Один элемент» под этими вкладками.
Получить конфигурацию экспорта
Ниже прилагаются четыре изображения, показывающие, какие элементы необходимо экспортировать для поля «field_brand_information».
- Field Storage
- Field
- Entity View Display
- Entity Form Display
Под блоком кода конфигурации вы увидите имя файла, которое вы должны создать в своем пользовательском модуле. Скопируйте все в коде конфигурации в указанный файл, за исключением первой строки, начинающейся с «uuid:».
Примечание: если вы добавили какие-либо дополнительные поля, вам нужно будет экспортировать поле и поле хранения для каждого из них. То же самое происходит, если вы создали несколько дисплеев, таких как тизер. В этом примере мы показываем только показы по умолчанию.
modules/custom/foobar/config/install/field.storage.node.field_brand_information.yml
modules/custom/foobar/config/install/field.field.node.car_brand.field_brand_information.yml
modules/custom/foobar/config/install/core.entity_view_display.node.car_brand.default.yml
modules/custom/foobar/config/install/core.entity_form_display.node.car_brand.default.yml
Удалите и снова включите модуль foobar
Теперь, когда у вас есть все ваши полевые конфигурации в вашей кодовой базе, пришло время удалить модуль foobar. После того, как вы удалили модуль, вернитесь назад и включите модуль, чтобы увидеть, вносит ли он ваши пользовательские поля. Если вы сейчас перейдете на страницу «Создание контента», то увидите, что можете создать новый узел типа контента «Car Brand», и он будет включать наше новое поле с именем «Информация о бренде» и любые другие поля, которые вы создали.
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.