Joomla的触发事件无法正常工作

时间:2016-05-16 11:29:16

标签: php joomla

我试图从外部php文件调用rsoom Pro的支付插件的jooomla triggerEvent函数。 但我一直得到500错误,我的服务器错误日志没有缓存错误代码。 下面是我的代码,我也添加了我的参考。 请帮我查一下错误来源。 提前谢谢。

define( '_JEXEC', 1 );
define('JPATH_BASE', '../');
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );      
require_once (JPATH_BASE. '/plugins/system/rsfppayment/rsfppayment.php');
jimport('joomla.application.component.controller');




  $updatedSubmissionId = 168;
    $mainframe = JFactory::getApplication();
    $mainframe->triggerEvent('rsfp_afterConfirmPayment', array($updatedSubmissionId));        

2 个答案:

答案 0 :(得分:1)

以下代码可以解决问题 - 可以在docs.joomla.org网站https://docs.joomla.org/Triggering_content_plugins_in_your_extension上找到更多信息。

// Note JDispatcher is deprecated in favour of JEventDispatcher in Joomla 3.x however still works.
JPluginHelper::importPlugin('system');
$dispatcher = JDispatcher::getInstance();
$dispatcher->trigger('rsfp_afterConfirmPayment', array($updatedSubmissionId));

答案 1 :(得分:1)

最好为你的插件创建自己的函数,然后使用另一个插件中的函数。但是我会简单介绍一下在你自己的插件代码中调用插件的方法(最新的Joomla 3 +):

第1步: 致电JPluginHelper::importPlugin( 'plugingroup' );

plugingroup可以是rsfppayment插件所在的系统或插件文件夹。

第2步:

$dispatcher = JEventDispatcher::getInstance();

第3步:

$results = $dispatcher->trigger( 'rsfp_afterConfirmPayment', array($updatedSubmissionId) );