我需要Joomla 3.8.13插件Virtuemart的支持。我想在安装插件时在virtuemart_orderstates
表中插入新值。
像viretuemart一样,在插件安装时(例如
** 1个COM_VIRTUEMART_ORDER_STATUS_CANCELLED 2 COM_VIRTUEMART_ORDER_STATUS_COMPLETED **
因此,我希望在创建付款网关插件时在此表中插入“自定义”状态。
答案 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>