Эта статья является неким дополнением к предыдущим статьям по конфигурации системы, а не целиком отдельной статьей. Если вам многое кажется непонятным, пожалуйста, вернитесь и прочитайте предыдущие статьи.
Когда вы создаете новый узел конфигурации системы, Magento не хранит значения по умолчанию. Это справедливо даже для конфигурации всей системы по умолчанию. Вы можете убедиться в этом, посмотрев на таблицу core_config_data
.
В этой таблице будут храниться только значения, которые были явным образом определены с помощью Консоли администратора или других программных средств.
Если вы будете делать запрос значения пути конфигурации системы, которое не имеет явного значения, Magento проверит глобальное дерево конфигурации по умолчанию. Хотя это и не требуется, рекомендуется устанавливать значения по умолчанию для своих пользовательских переменных конфигурации. Это довольно простой шаг и он гарантирует, что не произойдет чего-то неожиданного, когда будут загружаться пустые значения для ваших переменных конфигурации.
Как было отмечено ранее, значения по умолчанию сохраняются в глобальном дереве конфигурации (узел global
). Это немного сбивает с толку, поскольку больше ожидается, что эти значения будут храниться в том же файле system.xml
, где настроены пути. Но здесь работает, как и в большинстве вещей Magento, принцип
Нам не стоит ставить под сомнение почему, нам или делать или умереть
который выступает лучшим вариантом решения этого. Попробуйте подумать о глобальной конфигурации как о месте для хранения часто используемых значений, а system.xml
– как о месте, которым вы настраиваете UI для изменения этих значений.
Поэтому, продолжим.
В файле config.xml
модуля добавьте раздел верхнего уровня с названием <default/>
.
<!-- Файл: app/code/local/Packagename/Modulename/etc/config.xml --> <config> <!-- ... --> <default> </default> <!-- ... --> </config>
Это узел верхнего уровня, в котором вы будете хранить значения по умолчанию. Далее, возьмите путь к конфигурации и конвертируйте его в узел XML дерева. Например, если вы устанавливаете значение по умолчанию для следующего нода конфигурации:
design/header/welcome
ваша конфигурация будет выглядеть примерно так:
<!-- Файл: app/code/local/Packagename/Modulename/etc/config.xml --> <config> <!-- ... --> <default> <design> <header> <welcome>Default welcome msg!</welcome> </header> </design> </default> <!-- ... --> </config>
С помощью настройки конфигурации, подобной приведенной выше, запросы к
design/header/welcome
будут возвращать, если значения не переопределялись где-нибудь, дефолтный текст «Default welcome msg!».
Этот пример основан на существующей настройке конфигурации в составе инсталляции Magento. Помните, что большинство функций Magento создано с помощью той же системы модулей, которую вы используете для настройки системы. Давайте посмотрим на фактическую конфигурацию design/header/welcome
значения.
<!-- Файл: app/code/core/Mage/Page/etc/config.xml --> <default> <design> <head translate="default_description" module="page"> <default_title>Magento Commerce</default_title> <default_description>Default Description</default_description> <default_keywords>Magento, Varien, E-commerce</default_keywords> <default_robots>*</default_robots> <default_media_type>text/html</default_media_type> <default_charset>utf-8</default_charset> </head> <header translate="welcome" module="page"> <logo_src>images/logo.gif</logo_src> <logo_alt>Magento Commerce</logo_alt> <welcome>Default welcome msg!</welcome> </header> <footer translate="copyright" module="page"> <copyright>&copy; 2008 Magento Demo Store. All Rights Reserved.</copyright> </footer> </design> </default>
Это полная конфигурация по умолчанию для
design/*
иерархии конфигурации. Разница с нашими предыдущими примерами – это дополнительные атрибуты перевода.
<header translate="welcome" module="page">
Атрибуты «translate
» и «module
» указывают системе, какие узлы нужно перевести и какой Помощник данных модуля следует использовать для перевода. В приведенном выше примере это означает, что узел для приветствия будет переведен:
Mage::helper('page')->__(...);
Помните: если вы вызываете фабрику Помощника без остальной части URI, Magento будет предоставлять данные Помощника по умолчанию.
//одно и то же Mage::helper('page')->__(...); Mage::helper('page/data')->__(...);
Если вы хотите перевести несколько под-узлов, просто разделите имена с помощью запятых:
<example translate="foo,baz,bar" module="page">
Несмотря на то, что это не является необходимым, рекомендуется устанавливать пути конфигурации системы со значениями по умолчанию. Установив данные по умолчанию в начале, вы будете всегда получать определенное логическое значение, и вам не придется беспокоиться о случаях, когда пользователь может случайно сохранить значение с пустой строкой.
Автор: Alan Storm (https://alanstorm.com/magento_default_system_configuration_values/)
Перевод на русский: SebWeo
В современном мире цифрового маркетинга Facebook (Meta) остается одной из самых мощных платформ для продвижения…
Этот прибор стал незаменимым элементом арсенала представителей множества профессий, но особенно актуален среди военных. Тепловизор…
Постоянный поток новостей, рабочих задач и личных забот часто приводит к тому, что в голове…
В 2025 году конкуренция в e-commerce стала жесткой как никогда. Клиенты выбирают не только по…
Веб-дизайнеры и разработчики всегда ищут что-то новое и креативное, чтобы сделать свой сайт уникальным и…
Представьте ситуацию, когда вы пытаетесь обновить свой веб-сайт, но по какой-то причине у вас нет…