13. Сохранение данных настройки. Часть 3.¶
В прошлом уроке:
- Нашли запросы к базе данных, которые сохраняют и обновляют товар.
- Выяснили, что нужно создать новую колонку в базе данных, чтобы сохранить данные из новой настройки.
Очень часто модулям необходимо создавать свои таблицы базы данных или отдельные колонки в существующих таблицах MySQL. Каждый модуль в CS-Cart может выполнять запросы к базе данных при установке или удалении модуля.
Создадим новую колонку с помощью модуля «Мой первый модуль».
Откройте файл addon.xml модуля:
app/addons/first_addon/addon.xml
Запросы к базе данных выполняются с помощью секции
<queries>
в xml схеме модуля.В данной секции вы можете перечислить запросы к MySQL которые будут выполнены при:
Установка модуля <item><!-- Запрос --></item>
Удаление модуля <item for="uninstall"><!-- Запрос --></item>
В нашем случае, необходимо создать колонку video в таблице cscart_products.
Добавим следующий код в addon.xml:
<queries> <item>ALTER TABLE `?:products` ADD `video` varchar(255) NOT NULL default ''</item> <item for="uninstall">ALTER TABLE `?:products` DROP `video`</item> </queries>
При установке модуля колонка будет создана, при удалении модуля удалена.
Примечание
Все запросы выполняются только при переустановке модуля в панели администратора. Все запросы проходят предварительную обработку в платформе. Модуль не установится, если запрос содержит ошибки.
В результате у нас получается такой файл addon.xml модуля «Мой первый модуль»:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
<?xml version="1.0"?> <addon scheme="3.0"> <id>first_addon</id> <name>Мой первый модуль</name> <description>Создаём модуль для CS-Cart</description> <status>active</status> <default_language>ru</default_language> <language_variables> <item lang="en" id="first_addon.video">YouTube Embed Code</item> <item lang="ru" id="first_addon.video">Код от видео с YouTube</item> </language_variables> <queries> <item>ALTER TABLE `?:products` ADD `video` varchar(255) NOT NULL default ''</item> <item for="uninstall">ALTER TABLE `?:products` DROP `video`</item> </queries> </addon>
Переустановите модуль в панели администратора.
Откройте phpmyadmin и проверьте создание новой колонки:
Отлично! Колонка создалась.
Проверим, сохраняются ли данные из настройки “Код от видео с YouTube” на странице редактирования товара.
Вводим: 123456789
Нажимаем Сохранить. Данные сохранились и остались в ячейке.
Проверяем ещё раз в phpmyadmin.
Также, вы можете удалить модуль в панели администратора. Колонка будет удалена, данные будут потеряны.
Ну вот и все. Настройка работает, данные сохраняются. Вы уже можете использовать информацию из настройки в любом месте витрины интернет-магазина.
По теме создания настройки и сохранения данных из неё остался один не раскрытый вопрос: “Почему данные из базы MySQL сразу отображаются в соответствующих полях и настройках панели администратора.” Рассмотрим, это в следующем уроке.