在安装插件时,以venuemart_orderstates插入数据

时间:2018-11-07 04:59:42

标签: plugins joomla virtuemart

我需要Joomla 3.8.13插件Virtuemart的支持。我想在安装插件时在virtuemart_orderstates表中插入新值。

像viretuemart一样,在插件安装时(例如

** 1个COM_VIRTUEMART_ORDER_STATUS_CANCELLED 2 COM_VIRTUEMART_ORDER_STATUS_COMPLETED **

因此,我希望在创建付款网关插件时在此表中插入“自定义”状态。

1 个答案:

答案 0 :(得分:0)

您的插件安装中可能需要一个script.php文件。这将在安装插件时运行。类声明中有4种方法,它们在安装插件时运行,而一种方法在卸载时运行。 这些是preflight, install, update, postflight and uninstall

Preflight 这是安装之前运行的方法。假设您正在为某个组件创建一个插件,而没有该组件,则您的插件将无用。因此,您需要确认组件是否存在,然后只有安装才能进行,否则会引发一些异常。

Install 在Joomla安装数据库脚本完成后执行安装。安装时,需要将sql文件放在这里。

Update Joomla更新数据库脚本完成后,将执行更新。返回“ false”将中止更新并撤消已进行的所有更改。当您更新插件时,更新脚本应该在这里。

postflight 在所有其他三个都执行完之后执行。 Postflight不会导致Joomla安装中止,但是前三种方法可以回滚安装。

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>