magento admin area

19
Magento admin area System Config

Upload: pavel-usachev

Post on 22-Feb-2017

284 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Magento admin area

Magento admin areaSystem Config

Page 2: Magento admin area

ПодготовилПавел Усачев

Page 3: Magento admin area

Пример системной конфигурации

Page 4: Magento admin area
Page 5: Magento admin area

Конфигурационный файл выглядит так:

Page 6: Magento admin area

Чтобы создать таб достаточно просто задать ему имя и порядок сортировки. Например, открыв Mage_Core модуль можно увидеть

В этом файле определено 3 таба. При создании таба основным его параметром является код - имя тега. Он понадобится в дальнейшем, чтобы указать секции к какому табу она принадлежит. Например в том же файле

Page 7: Magento admin area

можно определить по тегу tab, что секция Advanced относится к табу Advanced. Секция определяется следующими тегами:

- label - название секции- tab - таб к которому она относится (необязательный)- class - задает css класс для ссылки секции, как пример секция PayPal-а (необязательный)- header_css - задает css класс для тега h3, на странице редактирования секции. В качестве примера - тот же PayPal (необязательный)- sort_order - порядковый номер- groups - группы, которые относятся к этой секции- show_in_default - показывать в дефолтном скоупе- show_in_website - показывать в скоупе вебсайта- show_in_store - показывать в скоупе стора

Атрибут translate указывает (через пробел), содержимое каких тегов является мультиязычным. Атрибут module указывает, какой модуль ответственный за данную секцию, в основном используется, чтобы создать объект хелпера этого модуля.

Page 8: Magento admin area

Секция содержит в себе группы, например в advanced

Page 9: Magento admin area

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

Группа задается следующими тегами:- label - название группы- sort_order - порядковый номер- frontend_model - блок, отвечающий за вывод группы (необязательный)- expanded - указывает открыта ли группа по умолчанию- comment - комментарий к группе- fields - структура полей- show_in_default - показывать в дефолтном скоупе- show_in_website - показывать в скоупе вебсайта- show_in_store - показывать в скоупе стора

Page 10: Magento admin area

Если посмотреть в секцию design, то увидим, что ее группы имеют тег fields, в котором задаются

параметры для полей. Например, группа package

Page 11: Magento admin area

Для задания поля нужно указать следующие тегиlabel - название поляsort_order - порядковый номерfrontend_model - блок, отвечающий за вывод поля (необязательный)frontend_type - тип поля (необязательный, по умолчанию text)backend_model - модель отвечающая за валидацию поля на сервере, должна быть объектом класса Mage_Core_Model_Config_Data. Ей передаются определенные данные: path, value, website_code, store_code. Должна реализовать метод _beforeSave (вызывается перед сохранением поля). Также можно реализовать методы afterLoad или getValue, которые вызываются перед тем как отобразить поле. Это нужно, если например в базе поле сохранено как сериализированный массив, т.е. строка, а для его отображения нужно, чтобы оно было массивом (необязательный)comment - комментарий под полем (необязательный)sort_fields - указывает как сортировать поля (необязательный, по умолчанию сортирует по sort_order)

by - имя тега по-которому нужно отсортироватьdirection_desc - указывает сортировать обратном порядке (по умолчанию сортировка А-Я)

config_path - указывает специфический путь для параметра, например package/name(необязательный, если не указан, то путь будет %SECION_NAME% / %GROUP_NAME% / %FIELD_NAME%, где *_NAME -

имена тегов)validate - задает класс полю, благодаря, которому можно будет валидировать поле на клиенте с помощью JavaScript и varienForm классаsource_model - задает модель-источник, используется для типов полей select и multiselect. Если модель является объектом Varien_Object, то ей устанавливается путь к полю (доступ можно получить при помощи метода getPath()). Например, группа debug из секции devимеет поле profiler, в котором задана сорс модель adminhtml/system_config_source_yesno. По умолчанию модель должна реализовать метод toOptionArray, который возвращает массив с опциями. Если Вы хотите использовать специфический метод, то в конце имени ставите 2 раза двоеточие и потом имя метода, например adminhtml/system_config_source_yesno::myMethoName.depends - указывает поля зависимые от значения данного поля. Пример можно посмотреть в секции каталог, группа Layered Navigation поле Price Navigation Step Calculation

tooltip - всплывающая подсказка может быть как просто текстом, так и Magento путем к блокуshow_in_default - показывать в дефолтном скоупеshow_in_website - показывать в скоупе вебсайтаshow_in_store - показывать в скоупе стора

Page 12: Magento admin area

В большинстве случает source, backend и frontend модели писать не придётся. Нужно просто пройтись по всем настройкам, посмотреть есть ли то что нужно, потом открыть конфигурационный файл и скопировать уже готовые директивы.Тег frontend_type может содержать любое значение из полей формы, которые определены в lib/Varien/Data/Form/Element/ директории.

Page 13: Magento admin area

Создание своих настроекЧтобы создать свои настройки для начала нужно написать модуль. В модуле в директории etc создаем файл system.xml. Создадим свой таб и секцию, а также добавим новое поле в секцию Каталог, группу Layered Navigation.Так как Magento объединяет все конфиг файлы в один большой XML, то чтобы добавить новый таб нужно всего лишь написать правильный xml

Page 14: Magento admin area

Теперь, чтобы это заработало нужно очистить кэш, а также создать права доступа для этих параметров (ACL) иначе будете попадать на 404 страницу. В нашем случае добавим ACL только для одной секции my_section. Добавляем информацию об этом в конфиг модуля (config.xml)

Page 15: Magento admin area

Выходим из админки, чтобы сессия очистилась, заходим обратно и вот что видим

Page 16: Magento admin area

Все настройки сохраняются в базу в таблицу core_config_data. Чтобы получить доступ к настройкам используется конструкция:

Page 17: Magento admin area

Чистим кэш и заходим через админку в секцию Каталог, группу Layered Navigation

Page 18: Magento admin area

Вопросы?

Page 19: Magento admin area