Коварная война россии против Украины. Ориентировочные потери врага
(по состоянию на 10.08.2022)
42800
солдат
232
самолетов
193
вертолетов
1832
танков
4076
ББМ
971
артиллерия
133
ПВО
261
РСЗО
3005
машин
15
корабли и катера
Magento для PHP MVC разработчиков – Конфигурация системы по умолчанию (ч.11/11)

Magento для PHP MVC разработчиков – Конфигурация системы по умолчанию (ч.11/11)

Эта статья является неким дополнением к предыдущим статьям по конфигурации системы, а не целиком отдельной статьей. Если вам многое кажется непонятным, пожалуйста, вернитесь и прочитайте предыдущие статьи.

 

Когда вы создаете новый узел конфигурации системы, 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>&amp;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

 

Все статьи данной серии:

  1. Magento для PHP MVC разработчиков (Alan Storm) – ч.1/11
  2. Magento для PHP MVC разработчиков – разбор контроллера (ч.2/11)
  3. Magento для PHP MVC разработчиков – Макеты, Блоки и Шаблоны (ч.3/11)
  4. Magento для PHP MVC разработчиков – Модели и основы ORM (ч.4/11)
  5. Magento для PHP MVC разработчиков – Инсталлирование Ресурса (ч.5/11)
  6. Magento для PHP MVC разработчиков – Расширенный ORM – EAV (ч.6/11)
  7. Magento для PHP MVC разработчиков – Особая конфигурация системы (ч.7/11)
  8. Magento для PHP MVC разработчиков – Углубленная настройка системы (ч.8/11)
  9. Magento для PHP MVC разработчиков – Коллекции Varien Data (ч.9/11)
  10. Magento для PHP MVC разработчиков – Переопределение и обновляемость системы (ч.10/11)
  11. Magento для PHP MVC разработчиков – Конфигурация системы по умолчанию (ч.11/11)

 

 

Добавить комментарий

Ваш адрес email не будет опубликован.