Значения по умолчанию настроечных опций в Magento 2 задаются точно также, как и в Magento 1: в секции «default
» файла etc/config.xml
модуля.
Например, значение по умолчанию опции «Общие
» → «Оформление
» → «Шапка
» → «Текст приветствия
» определяется в файле etc/config.xml
модуля Magento_Theme
так:
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
<default>
(...)
<design>
(...)
<header translate="welcome">
(...)
<welcome>Default welcome msg!</welcome>
</header>
</design>
</default>
</config>
Если администратор не меняет вручную значение этой опции посредством административного интерфейса в разделе «Магазины
» → «Настройки
», то на витрине отображается значение по умолчанию:
В Magento 2, как и в Magento 1, можно изменить значение по умолчанию настроечной опции, указав своё значение в файле etc/config.xml
своего модуля по тому же пути XML, что и в оригинальном файле etc/config.xml
модуля ядра, при этом не нужно дублировать весь оригинальный файл ядра, а достаточно указать в своём файле etc/config.xml
только те ветки XML, значения которых поменялись, например:
<?xml version="1.0"?>
<config
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../../Magento/Core/etc/config.xsd"
>
<default>
<design>
<header>
<welcome>Добро пожаловать!</welcome>
</header>
</design>
</default>
</config>
Обратите внимание, что в Magento 2, в отличие от Magento 1, отсутствуют области программного кода.
В Magento 1 наличие областей программного кода гарантировало, что настойки сторонних модулей, размещённые в областях local
и community
, всегда будут применяться после настроек моделей ядра (которые размещены в программной области core
), и, таким образом, в Magento 1 настройки сторонних модулей всегда переопределяют настройки ядра.
Однако, в Magento 2 области программного кода отсутствуют.
Чтобы в Magento 2 настройки стороннего модуля загружались после настроек ядра (и, тем самым, перекрывали настройки ядра), важно, чтобы система загружала сторонний модуль после модулей ядра.
Как будет устанавливаться порядок загрузки в промышленной версии Magento 2 — на сегодня неизвестно, однако в текущей версии Magento 2 0.42.0-beta2
порядок загрузки модулей определяется порядком их перечисления в файле app/etc/config.php
.
Чтобы настройки стороннего модуля имели приоритет перед настройками модулей ядра, описывайте свои модули в конце списка модулей файла app/etc/config.php
.