Magento предлагает (относительно) простую поддержку пользовательских значений конфигурации. Лучший способ сделать это - создать один модуль magento, который будет содержать все ваши пользовательские значения конфигурации.
Как и в любом Magento, есть много шагов, и любой, кто ошибается, может сбить вас с толку (или меня!).
Создать пустой модуль Magento
Во-первых, вам нужно настроить модуль magento для хранения всех ваших пользовательских значений конфигурации. Создание модуля magento включает
- Создайте XML-файл в приложении / etc / modules
- Создать структуру папок в приложении / code / local / Companyname
Companyname - это уникальная строка, которая служит пространством имен, и большинство руководств по magento рекомендуют использовать здесь название вашей компании. Для целей этого урока я буду использовать «Stackoverflow». Везде, где вы видите строку Stackoverflow, замените ее собственной уникальной строкой.
Итак, для шага 1 создайте файл в app / etc / modules с именем «Stackoverflow_Customconfig.xml» и поместите следующее внутри
<?xml version="1.0"?>
<config>
<modules>
<Stackoverflow_Customconfig>
<active>true</active>
<codePool>local</codePool>
</Stackoverflow_Customconfig>
</modules>
</config>
Случайный совет для Magento: есть части системы magento, которые считают пробел значимым, поэтому всегда лучше не включать пробелы в значения атрибутов ( true против true
Далее создайте следующую папку
mkdir app/code/local/Stackoverflow/Customconfig
mkdir app/code/local/Stackoverflow/Customconfig/etc
И создать файл в
app/code/local/Stackoverflow/Customconfig/etc/config.xml
со следующим содержанием
<?xml version="1.0"?>
<config>
<modules>
<Stackoverflow_Customconfig>
<version>0.1.0</version>
</Stackoverflow_Customconfig>
</modules>
</config>
Поздравляем, вы только что установили новый модуль Magento. Если вы очистите свой кэш magento и перейдете на
System -> Configuration -> Advanced -> Disable Modules Output
вы должны увидеть свой модуль в списке.
Добавьте файл System.xml в свой модуль
Далее мы собираемся добавить файл system.xml. Этот файл используется для добавления пользовательского значения конфигурации в magento, которое вы сможете получить в любом месте во время цикла запроса magento. Добавить файл на
app/code/local/Stackoverflow/Customconfig/etc/system.xml
Содержит следующее
<config>
<sections>
<design>
<groups>
<my_or_their_group translate="label">
<label>A grouping of config values. Make your own, or us an existing group.</label>
<frontend_type>text</frontend_type>
<sort_order>50</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>0</show_in_website>
<show_in_store>0</show_in_store>
<fields>
<my_config translate="label">
<label>This will be my config's label</label>
<frontend_type>text</frontend_type>
<sort_order>50</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>0</show_in_website>
<show_in_store>0</show_in_store>
</my_config>
</fields>
</my_or_their_group>
</groups>
</design>
</sections>
</config>
- это название раздела, в котором будет отображаться ваша конфигурация. "Общие сведения, веб-дизайн, настройка валюты и т. Д." По большому счету, это будет заглавная версия заголовка, то есть «Общее» становится «общим», «Дизайн» становится «дизайном». Если вы не уверены, каким должен быть этот внешний тег, выполните поиск по основным модулям magento. то есть всплывающее окно «Настройка валюты» показывает упоминание в
app/code/core/Mage/Directory/etc/system.xml
<currency translate="label" module="directory">
<label>Currency Setup</label>
Таким образом, вы бы использовали тег
- это имя группы, в которой будет отображаться ваша переменная конфигурации. Группы - это раскрывающиеся списки Ajax, содержащие поля конфигурации. Например, в разделе «Общие» есть группа «Параметры страны» и группа «Локальные параметры». Опять же, проверьте существующие основные модули, если вы не знаете, как поместить значение в существующую группу.
Вы также заметите здесь атрибут перевода вместе с соответствующим тегом метки. Это позволяет вам использовать любую строку, которую вы хотите в интерфейсе HTML, в качестве заголовка группы, но внутренне сохранить имя допустимым именем тега XML. Наш тег называется
<my_or_their_group />
но в интерфейсе группа будет иметь название
Группировка значений конфигурации. Сделайте свою или нас существующей группой.
Наконец, - это имя значения yoru conifg. Опять же, обратите внимание на атрибут translate . Применяются те же правила, что и выше.
Требуется другая структура xml, и (в основном) она используется для контроля того, какие входные данные HTML будут использоваться для вашей конфигурации. Если вам нужен конкретный элемент интерфейса, найдите пример в модуле ядра и скопируйте структуру XML.
Это позволит вам задавать и искать значения конфигурации в интерфейсе Magento GUI. Вы можете получить ваши значения, используя статический метод getStoreConfig глобального объекта Mage и указав URI вашего значения конфигурации. URI создается с использованием раздела / группы / имени вашей конфигурации.
Mage::getStoreConfig('design/my_or_their_group/my_config');