13. Сохранение данных настройки. Часть 3.

В прошлом уроке:

  1. Нашли запросы к базе данных, которые сохраняют и обновляют товар.
  2. Выяснили, что нужно создать новую колонку в базе данных, чтобы сохранить данные из новой настройки.

Очень часто модулям необходимо создавать свои таблицы базы данных или отдельные колонки в существующих таблицах MySQL. Каждый модуль в CS-Cart может выполнять запросы к базе данных при установке или удалении модуля.

Создадим новую колонку с помощью модуля «Мой первый модуль».

  1. Откройте файл addon.xml модуля:

    app/addons/first_addon/addon.xml

  2. Запросы к базе данных выполняются с помощью секции <queries> в xml схеме модуля.

    В данной секции вы можете перечислить запросы к MySQL которые будут выполнены при:

    Установка модуля <item><!-- Запрос --></item>
    Удаление модуля <item for="uninstall"><!-- Запрос --></item>
  3. В нашем случае, необходимо создать колонку 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>
    

    При установке модуля колонка будет создана, при удалении модуля удалена.

    Примечание

    Все запросы выполняются только при переустановке модуля в панели администратора. Все запросы проходят предварительную обработку в платформе. Модуль не установится, если запрос содержит ошибки.

  4. В результате у нас получается такой файл 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 и Multi-Vendor</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>
    
  5. Переустановите модуль в панели администратора.

  6. Откройте phpmyadmin и проверьте создание новой колонки:

    Отлично! Колонка создалась.

  7. Проверим, сохраняются ли данные из настройки “Код от видео с YouTube” на странице редактирования товара.

    Вводим: 123456789

    Нажимаем Сохранить. Данные сохранились и остались в ячейке.

  8. Проверяем ещё раз в phpmyadmin.

    Также, вы можете удалить модуль в панели администратора. Колонка будет удалена, данные будут потеряны.

Ну вот и все. Настройка работает, данные сохраняются. Вы уже можете использовать информацию из настройки в любом месте витрины интернет-магазина.

По теме создания настройки и сохранения данных из неё остался один не раскрытый вопрос: “Почему данные из базы MySQL сразу отображаются в соответствующих полях и настройках панели администратора.” Рассмотрим, это в следующем уроке.