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

 
 

 

Recent Posts

Огляд WordPress 7.0 “Armstrong”: Нова ера ШІ та масштабна перебудова Core-архітектури

20 травня 2026 року офіційно відбувся реліз довгоочікуваної мажорної версії WordPress 7.0 «Armstrong», названої на…

5 днів ago

History Hijacking: Чому Google карає за «зламану» кнопку Назад і як захистити сайт за допомогою CSP

Кожен власник сайту та SEO-спеціаліст веде щоденну запеклу боротьбу за утримання користувача на сторінках вебресурсу.…

6 днів ago

Як вибрати дитячі бутси для футбольної секції та не помилитися з типом підошви

Футбольна секція швидко показує, наскільки взуття підходить дитині. Якщо пара ковзає, тисне або погано чіпляється…

1 тиждень ago

Флагманський смартфон: чому варто купити Samsung Galaxy S26 Ultra

Компанія Samsung - один із лідерів на ринку електроніки. Її смартфони вирізняються надійністю, якісними дисплеями,…

1 тиждень ago

Дієслово dar в іспанській мові: значення, відмінювання та особливості використання

Іспанська мова приваблює мільйони людей своєю мелодійністю, емоційністю та відносною простотою вивчення. Одним із найважливіших…

2 тижні ago

Ідеальне робоче місце: збираємо надійний сетап для стабільної роботи та геймінгу

Робочий простір давно перестав бути просто столом із ПК/ноутбуком. Сьогодні це повноцінна екосистема, де кожна…

2 тижні ago