Вставьте данные в virtuemart_orderstates при установке плагина - PullRequest
0 голосов
/ 07 ноября 2018

Мне нужна поддержка на Joomla 3.8.13 плагин Virtuemart. Я хочу вставить новые значения в таблицу virtuemart_orderstates во время установки моего плагина.

, поскольку viretuemart вставляет значения в virtuemart_orderstates во время установки плагина, например

** 1 COM_VIRTUEMART_ORDER_STATUS_CANCELLED 2 COM_VIRTUEMART_ORDER_STATUS_COMPLETED **

поэтому я хочу вставить свой пользовательский статус в эту таблицу во время создания плагина шлюза оплаты.

1 Ответ

0 голосов
/ 07 ноября 2018

Возможно, вам нужен файл script.php в вашей установке плагина. Это будет работать, когда плагин установлен. В объявлении класса есть 4 метода, которые запускаются, когда плагин установлен, и один метод, когда он удален. Это preflight, install, update, postflight and uninstall.

Preflight Это метод, который выполняется перед установкой. Предположим, вы создаете плагин для какого-то компонента, и без этого ваш плагин бесполезен. Таким образом, вам нужно подтвердить, существует ли компонент, тогда только установка должна продолжаться, иначе выдается какое-то исключение.

Install Установка выполняется после завершения сценариев установки базы данных Joomla. Когда вы устанавливаете, вы должны поместить свои sql файлы сюда.

Update Обновление выполняется после завершения сценариев обновления базы данных Joomla. Возвращение «false» отменит обновление и отменит все уже внесенные изменения. Когда вы обновляете свой плагин, ваш скрипт обновления должен быть здесь.

postflight Это выполняется после того, как все остальные 3 выполнены. Postflight не может вызвать прерывание установки Joomla, но предыдущие 3 метода могут откатить установку.

Uninstall Как следует из названия, он используется во время удаления. если вы хотите удалить любой файл базы данных, который нельзя удалить из деинсталляции xml, или вы хотите удалить любую папку с изображениями и т. д., которую вы можете сделать во время удаления. Лучше просто показать здесь сообщение об удалении.

Внутри вашего файла script.php

    <?php
    // No direct access
    defined('_JEXEC') or die('Restricted access');

    /*
     * Script file for the YourPlugin  
     */
    class plgsystemYourPlugin{

      /*
       * Method to run after the plugin during install and after preflight action is completed.
       *
       * @return void
       */
      function install($parent){
        // For Testing Purposes
        run your database script here
      }
    }
?>

Также скрипт script.php должен быть включен в файл установщика xml внутри тега скрипта

<scriptfile>script.php</scriptfile>
...