Magento предлагает (относительно) простую поддержку пользовательских значений конфигурации. Лучший способ, который я нашел для достижения этой цели, — создать один модуль magento, который содержит все ваши пользовательские значения конфигурации.
Как и в любом другом Magento, здесь много шагов, и любой неверный шаг может поставить вас (или меня!) в тупик.
Создайте пустой модуль Magento
Во-первых, вам нужно настроить модуль magento для хранения всех ваших пользовательских значений конфигурации. Создание модуля magento включает в себя
- Создайте xml файл в app/etc/modules
- Создайте структуру папок в app/code/local/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 считают пробелы важными, поэтому всегда лучше не включать пробелы в значения атрибутов (‹active›true‹/active› vs. ‹active› true ‹/active›
Далее создайте следующую папку
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>
Таким образом, вы должны использовать тег ‹currency/‹, а не более интуитивно понятный ‹currency_setup /›.
‹my_or_their_group translate="label"› — это имя группы, в которой будет отображаться ваша переменная конфигурации. Группы — это раскрывающиеся списки Ajax, содержащие поля конфигурации. Например, в разделе «Общие» есть группа «Параметры для страны» и группа «Местные параметры». Опять же, проверьте существующие основные модули, если вы не знаете, как поместить значение в существующую группу.
Вы также заметите здесь атрибут translate вместе с соответствующим тегом label. Это позволяет вам использовать любую строку, которую вы хотите, в интерфейсе HTML в качестве заголовка группы, но внутренне сохраните имя как допустимое имя тега XML. Наш тег называется
<my_or_their_group />
но в интерфейсе группа будет иметь название
Группа значений конфигурации. Создайте свою группу или создайте существующую группу.
Наконец, ‹my_config translate="label"› — это имя вашего значения конфигурации. Обратите внимание на атрибут translate. Применяются те же правила, что и выше.
Другая структура xml необходима и (в основном) используется для управления тем, какие входные данные HTML будут использоваться для вашей конфигурации. Если вам нужен определенный элемент интерфейса, найдите пример в основном модуле и скопируйте структуру XML.
Это позволит вам устанавливать и искать значения конфигурации в графическом интерфейсе Magento. Вы можете получить свои значения, используя статический метод getStoreConfig глобального объекта Mage и указав URI вашего значения конфигурации. URI создается с использованием раздела/группы/имени вашей конфигурации.
Mage::getStoreConfig('design/my_or_their_group/my_config');
person
Alan Storm
schedule
15.06.2009