Сторінку налаштування Magento 2 можна знайти в адмін-панелі Magento 2 > Stores > Configuration.

Налаштування Magento 2

Усі вкладки та форми цієї сторінки налаштовуються за допомогою файлу

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). Оновіть сторінку конфігурації. Перед вами відкриється нова вкладка:

Кастомна секція в налаштуваннях Magento 2

Використовуйте 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.