Сторінку налаштування Magento 2 можна знайти в адмін-панелі Magento 2 > Stores > Configuration.
![]()
Усі вкладки та форми цієї сторінки налаштовуються за допомогою файлу
etc/adminhtml/system.xml
який присутній у
Помістіть наступний код у system.xml файл вашого модуля, щоб додати власну секцію:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
<system>
<tab id="tab_id" translate="label" sortOrder="110">
<label>My Tab</label>
</tab>
<section id="section_id" translate="label" type="text" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="1">
<class>separator-top</class>
<label>My Section</label>
<tab>tab_id</tab>
<resource>VendorName_ModuleName::acl_path</resource>
<group id="group_id" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
<label>My Group</label>
<attribute type="expanded">1</attribute>
<field id="field_id" translate="label comment" type="select" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
<label>My YesNo Field</label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
</field>
</group> <group id="group_id2" translate="label" type="text" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="1">
<label>My Group2</label>
<attribute type="expanded">1</attribute>
<field id="field_id" translate="label comment" type="select" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
<label>My YesNo Field</label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
</field>
</group> </section>
</system>
</config>
Очистіть Configuration-кеш Magento 2 (це можна зробити у System > Cache Management). Оновіть сторінку конфігурації. Перед вами відкриється нова вкладка:
![]()
Використовуйте xml element <tab>, при створенні нової табуляції. При цьому tab_id повинно бути унікальним.
- <resource> служить для розмежування прав доступу до секції. Про них ви можете дізнатись більше у .
- <attribute type="expanded">1</attribute> вказує на те, що група по замовчуванні розгорнута.
- <source_model> ідентифікує модель, яка відповідає за дані, що потраплять у поле. Source Model, зокрема, використовується для випадаючих списків.
- showInStore вказує на доступність елементу для редагування на рівні Store View, showInWebsite - на рівні Website, showInDefault - на глобальному рівні. Перемикати рівні конфігурації можна за допомогою випадаючого списку "Store View", що знаходиться у верхній лівій частині, під назвою сторінки.
- type вказує на тип елементу, sortOrder - на позицію, translate вказує, які властивості доступні для перекладу на інші мови. Рекомендуємо використовувати у своїх модулях sortOrder з кроком 10.
Розширення існуючих секцій
За допомогою sytem.xml можна не лише створювати нові секції, але й розширювати існуючі. Все, що необхідно - відтворити структуру секцій та груп без використання атрибутів, лейблів (label) і помістити у них нові поля. При побудові сторінки конфігурації Magento 2 збирає system.xml файли зі всіх модулів та поєднує (мерджить) їх.
У прикладах ми створюємо модуль для поширених запитань (FAQ). Змінений код модуля можна переглянути на GitHub.
Читайте більше, щоб дізнатись, як задати для полів на сторінці конфігурації Magento 2.