Magento: Создание раздела и групп программно (включая скриншот)? - PullRequest
2 голосов
/ 30 марта 2012

Вместо того, чтобы использовать system.xml для статического создания групп и разделов, я хочу создать раздел и группы в коде. Просьба взглянуть на скриншот:

groups

То, что показано на экране, было сделано в модулях system.xml, теперь я хочу сделать это прямо в коде. Я также нашел место, где создается форма: app / code / core / Mage / Adminhtml / Block / System / Config / Form.php в initForm () функция. Там он читает разделы и внутренние группы. Проблема в том, что я не знаю, как действовать дальше. Может быть, кто-то сделал что-то похожее или может указать мне правильное направление. Я полагаю, что частью этого является создание Mage_Core_Model_Config_Element самостоятельно?

1 Ответ

6 голосов
/ 10 апреля 2012

Этот способ использования экрана системы / конфигурации не является стандартом Magento.

Если вы хотите остаться в стандарте, у вас есть два варианта:

  1. Создайте свой собственный экран настроек.
  2. Используйте свойство frontend_model групп в вашем config.xml

    <?xml version="1.0"?>
    <config>
        <sections>
            <your_section>
                <groups>
                    <your_group>
                         <frontend_model>your_module/your_block</frontend_model>
                    </your_group>
                </groups>
            </your_section>
        </sections>
    </config>
    

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

Этот блок должен расширять Mage_Adminhtml_Block_System_Config_Form_Fieldset, и если вы хотите, чтобы ваши поля сохраняли данные в core_config_data, они должны иметь name = 'groups [your_group] [fields] [your_field] [value]' (Magento позаботится о your_section часть для вас).

Ваши поля тоже должны сами читать данные, просто поместите их в свой атрибут value.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...