Пользовательская конфигурация Back-End в Magento

23 января 2018

В этом учебном пособии я собираюсь продемонстрировать конфигурацию пользовательского модуля во внутреннем интерфейсе Magento. Всегда полезно предоставить набор настраиваемых параметров модуля во внутреннем интерфейсе, что позволяет администраторам легко настраивать параметры, специфичные для модуля. Мы рассмотрим процесс настройки конфигурации модуля, создав настраиваемый модуль в Magento.

Введение в пользовательскую настройку в Magento

Как разработчик, во время создания пользовательского модуля вы можете почувствовать, что было бы неплохо, если бы вы могли перенести контроль над определенными настройками модуля на внешний. Magento позволяет достичь этого, используя конфигурационную систему на основе XML-файлов. Вам просто нужно настроить файлы в соответствии с соглашениями Magento, и они будут автоматически активированы! В большинстве случаев вам придется иметь дело с множеством настраиваемых настроек, предоставляемых базовыми модулями, при настройке базового front-end магазина.

Я предполагаю, что вы знакомы с процессом создания базового модуля в Magento. Вот хорошая статья, если вы хотите узнать больше о пользовательских модулях в Magento. Сказав это, Magento следует за концепцией парадигмы конфигурации, которая должна упростить понимание, если вы новичок в процессе разработки пользовательского модуля.

Создайте пользовательский модуль для обеспечения пользовательской конфигурации

В ходе этого урока я создам базовый настраиваемый модуль с именем «CustomConfig», который предоставляет внутреннюю конфигурацию в меню «Система»> «Конфигурация». Вот список файлов, необходимых для нужной настройки:

app etc modules Envato_All.xml: это файл, используемый для включения нашего настраиваемого модуля.
app code local Envato CustomConfig etc config.xml: Это конфигурационный файл модуля.
app code local Envato CustomConfig etc system.xml: это файл, который объявляет параметры конфигурации для нашего модуля.
app code local Envato CustomConfig Model Options.php: It 's файл модели, который предоставляет опции для определенных элементов формы конфигурации. app code local Envato CustomConfig Helper Data.php: это файл, используемый системой перевода Magento.

Настройка файлов

To начнем с, мы создадим файл enabler модуля. Создайте файл "app etc modules Envato_All.xml " и вставьте следующее содержимое в этот файл. Мы использовали "Envato " в качестве нашего пространства имен модулей и "CustomConfig " в качестве нашего имени модуля. Он по умолчанию включит наш модуль «CustomConfig».

<?xml version="1.0"?>
<config>
  <modules>
    <Envato_CustomConfig>
      <active>true</active>
      <codePool>local</codePool>
    </Envato_CustomConfig>
  </modules>
</config>

Затем нам нужно создать файл конфигурации модуля. Создайте «код приложения local Envato CustomConfig и т. Д. Config.xml» и вставьте следующее содержимое в этот файл.

<?xml version="1.0"?>
<config>
    <modules>
        <Envato_CustomConfig>
            <version>0.0.1</version>
        </Envato_CustomConfig>
    </modules>
    <global>
        <helpers>
            <customconfig>
                <class>Envato_CustomConfig_Helper</class>
            </customconfig>
        </helpers>
        <models>
             <customconfig>
                <class>Envato_CustomConfig_Model</class>
             </customconfig>
        </models>
    </global>
    <adminhtml>
        <acl>
            <resources>
                <admin>
                    <children>
                        <system>
                            <children>
                                <config>
                                    <children>
                                        <customconfig_options>
                                            <title>Custom Configuration Section</title>
                                        </customconfig_options>
                                    </children>
                                </config>
                            </children>
                        </system>
                    </children>
                </admin>
            </resources>
        </acl>
    </adminhtml>
</config>

Вы должны быть знакомы с объявлением модели и вспомогательного класса в соответствии с соглашениями Magento. Конечно, тегявляется новым для вас, что мы и рассматриваем в контексте этого урока. Давайте подробно рассмотрим каждый тег, чтобы понять, что он обозначает.

Тегиспользуется для определения ресурсов административной стороны. В нашем примере страница конфигурации для нашего модуля является ресурсом. Кроме того, мы использовали тегдля обертывания тега, что означает, что он будет доступен только для аутентифицированных пользователей.

Следующие пару тегов используются для определения пути к нашей странице конфигурации на заднем плане. Таким образом, путь к нашей странице конфигурации выглядит как «config systemconfig_options системы администратора». Конечно, последний тегдолжен быть уникальным, поэтому он не конфликтует с другими расширениями.

Двигаясь вперед, давайте определим самый важный файл, "system.xml ". Создайте «код приложения local Envato CustomConfig и т. Д. System.xml» и вставьте следующее содержимое в этот файл.

<?xml version="1.0"?>
<config>
    <tabs>
        <customconfig translate="label" module="customconfig">
            <label>Custom Configuration Tab</label>
            <sort_order>1</sort_order>
        </customconfig>
    </tabs>
    <sections>
        <customconfig_options translate="label" module="customconfig">
            <label>Custom Configuration Settings</label>
            <tab>customconfig</tab>
            <frontend_type>text</frontend_type>
            <sort_order>1</sort_order>
            <show_in_default>1</show_in_default>
            <show_in_website>1</show_in_website>
            <show_in_store>1</show_in_store>
            <groups>
                <section_one translate="label">
                    <label>Section One</label>
                    <frontend_type>text</frontend_type>
                    <sort_order>1</sort_order>
                    <show_in_default>1</show_in_default>
                    <show_in_website>1</show_in_website>
                    <show_in_store>1</show_in_store>               
                    <fields>
                        <custom_field_one>
                            <label>Custom Text Field</label>
                            <frontend_type>text</frontend_type>
                            <sort_order>1</sort_order>
                            <show_in_default>1</show_in_default>
                            <show_in_website>1</show_in_website>
                            <show_in_store>1</show_in_store>
                            <comment>Example of text field.</comment>                  
                        </custom_field_one>
                    </fields>
                </section_one>
                <section_two translate="label">
                    <label>Section Two</label>
                    <frontend_type>text</frontend_type>
                    <sort_order>2</sort_order>
                    <show_in_default>1</show_in_default>
                    <show_in_website>1</show_in_website>
                    <show_in_store>1</show_in_store>               
                    <fields>
                        <custom_field_two>
                            <label>Custom Select Field</label>
                            <frontend_type>select</frontend_type>
                            <source_model>customconfig/options</source_model>
                            <sort_order>1</sort_order>
                            <show_in_default>1</show_in_default>
                            <show_in_website>1</show_in_website>
                            <show_in_store>1</show_in_store>
                            <comment>Example of select field.</comment>
                        </custom_field_two>
                        <custom_field_three>
                            <label>Custom Radio Field</label>
                            <frontend_type>radios</frontend_type>
                            <source_model>customconfig/options</source_model>
                            <sort_order>2</sort_order>
                            <show_in_default>1</show_in_default>
                            <show_in_website>1</show_in_website>
                            <show_in_store>1</show_in_store>
                            <comment>Example of radios field.</comment>
                        </custom_field_three>
                        <custom_field_four>
                            <label>Custom Multiselect Field</label>
                            <frontend_type>multiselect</frontend_type>
                            <source_model>customconfig/options</source_model>
                            <sort_order>3</sort_order>
                            <show_in_default>1</show_in_default>
                            <show_in_website>1</show_in_website>
                            <show_in_store>1</show_in_store>
                            <comment>Example of multiselect field.</comment>
                        </custom_field_four>
                    </fields>
                </section_two>
            </groups>               
        </customconfig_options>
    </sections>
</config>

Как вы уже догадались, этот файл отвечает за отображение страницы конфигурации нашего модуля в фоновом режиме. Давайте рассмотрим некоторые важные теги в этом файле.

Тегиспользуется для определения вкладок, которые будут отображаться в левой части страницы конфигурации. И тегиспользуется для определения разделов под каждой вкладкой.

Давайте попробуем разобраться в этом примере. Перейдите в «Система»> «Конфигурация» во внутреннем интерфейсе Magento. Вы заметите, что есть разные вкладки, такие как «Общие», «Каталог», «Клиенты» и т. Д.

. Под каждой вкладкой вы также увидите разные разделы. Например, в расширенном теге есть разделы Admin, System, Advanced и Developer. В нашем случае у нас есть раздел настроек пользовательской настройки на вкладке «Пользовательская настройка».

Затем мы используем тегдля группировки похожих полей конфигурации вместе. Например, вы хотите отображать связанные с изображениями поля и поля, связанные с электронной почтой, в разных разделах. Для этого мы определили тегии.

Наконец, мы завершаем поля каждого раздела тегом. В нашем примере мы предоставили текстовое поле в поле «Сезон 1», в то время как другие поля, такие как поле выбора, переключатель и мультивыбор, доступны в поле «Секция два», Так что это файл system.xml .

Далее, давайте создадим модельный файл «код приложения local Envato CustomConfig Model Options.php ».

<?php
class Envato_CustomConfig_Model_Options
{
  /**
   * Provide available options as a value/label array
   *
   * @return array
   */
  public function toOptionArray()
  {
    return array(
      array('value'=>1, 'label'=>'One'),
      array('value'=>2, 'label'=>'Two'),
      array('value'=>3, 'label'=>'Three'),           
      array('value'=>4, 'label'=>'Four')                    
    );
  }
}

Ничего необычного здесь - он просто используется для подачи опций в поле формы радио и выбора поля формы в форме конфигурации.

Наконец, нам нужно будет создать локальный файл Envato CustomConfig Helper Data.php для кода приложения, чтобы убедиться, что система перевода Magento работает правильно. Это почти пустой файл, но должен быть там согласно соглашениям!

<?php
/**
 * Sample Widget Helper
 */
class Envato_CustomConfig_Helper_Data extends Mage_Core_Helper_Abstract
{
}

Мы сделали с настройкой файлов. В следующем разделе мы проверим, как он выглядит в фокусе Magento.

Пройдите по завершению, чтобы проверить пользовательскую конфигурацию

Перейдите к серверу Magento и очистите все кеши. Его можно найти, перейдя в System> Cache Management.

Теперь перейдите в «Система»> «Конфигурация», чтобы открыть страницу конфигурации. Вы должны увидеть ТАБЛИЦУ КОНФИГУРАЦИИ ТАБЛИЦЫ в левой части страницы. При этом доступна ссылка для параметров пользовательской настройки, и нажатие на нее откроет страницу конфигурации для нашего модуля. Если вы не видите этого, попробуйте выйти из раздела администратора и снова войти в систему.

Это красивый интерфейс, работающий из коробки, правда? Вы можете немного поиграть, заполнить форму и нажать кнопку «Сохранить конфигурацию», чтобы зафиксировать изменения, и Magento справится с остальными.

Чтобы получить доступ к значениям параметров конфигурации в коде, вы можете использовать статический метод getStoreConfig. Например, вы можете получить значение параметра custom_field_one, используя следующий синтаксис:

Mage::getStoreConfig('customconfig_options/section_one/custom_field_one');

Синтаксис довольно прост - вам нужно использовать шаблон "section_name group_name field_name ", как определено в файле system.XML.

Заключение

Конфигурация системы администратора является одной из самых сильных и полезных частей Magento. Magento позволяет легко подключать пользовательские параметры конфигурации благодаря расширяемости одной из самых мощных систем электронной коммерции! Поделитесь своими мыслями, используя фид ниже!