Как в Magento 2 предоставить администратору опции для настройки модуля?

(Дмитрий Федюк) #1

В Magento 1 административные опции модуля описываются в файле etc/system.xml модуля.
В Magento 2 административные опции модуля описываются в файле etc/adminhtml/system.xml модуля.
Синтаксис изменился:

<?xml version='1.0'?>
<config
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="../../../../Magento/Backend/etc/system_file.xsd"
>
    <system>
        <section
            id='rm_localization'
            translate='label'
            type='text'
            sortOrder='100'
            showInDefault='1'
            showInWebsite='1'
            showInStore='1'
        >
            <tab>_rm</tab>
            <label>Русификация</label>
            <class>separator-top</class>
            <resource>Rm_Localization::config</resource>
            <group
                id='admin'
                translate='label'
                type='text'
                sortOrder='100'
                showInDefault='1'
                showInWebsite='1'
                showInStore='1'
            >
                <label>Административная часть</label>
                <field
                    id='hide_decimals'
                    translate='label'
                    type='select'
                    sortOrder='1'
                    showInDefault='1'
                    showInWebsite='1'
                    showInStore='1'
                >
                    <label>Скрывать копейки?</label>
                    <source_model>Magento\Backend\Model\Config\Source\Yesno</source_model>
                    <comment><![CDATA[
При значении «да» денежные величины будут отображаться в административном интерфейсе без дробной части,
<br/>например: «<b>107 руб.</b>» вместо «<b>107.25 руб.</b>».
                    ]]></comment>
                </field>
            </group>
            <group
                id='frontend'
                translate='label'
                type='text'
                sortOrder='100'
                showInDefault='1'
                showInWebsite='1'
                showInStore='1'
            >
                <label>Витрина</label>
                <field
                    id='hide_decimals'
                    translate='label'
                    type='select'
                    sortOrder='2'
                    showInDefault='1'
                    showInWebsite='1'
                    showInStore='1'
                >
                    <label>Скрывать копейки?</label>
                    <source_model>Magento\Backend\Model\Config\Source\Yesno</source_model>
                    <comment><![CDATA[
При значении «да» денежные величины будут отображаться на витрине без дробной части,
например: «<b>107 руб.</b>» вместо «<b>107.25 руб.</b>».
                    ]]></comment>
                </field>
            </group>
        </section>
    </system>
</config>

При такой разметке Magento 2 создат такой административный интерфейс для модуля:

0 Likes

(Дмитрий Федюк) #2

За прошедшие полгода развития Magento 2 путь схемы XSD изменился.
Теперь из своего модуля его можно указать так:

xsi:noNamespaceSchemaLocation='../../../../Magento/Config/etc/system_file.xsd'
0 Likes

(Дмитрий Федюк) #3

Для формирования выпадающего списка «да/нет» надо теперь вместо класса Magento\Backend\Model\Config\Source\Yesno использовать класс Magento\Config\Model\Config\Source\Yesno

0 Likes