【发布时间】:2016-05-18 13:51:24
【问题描述】:
我在 joomla 中创建了一个系统插件,并创建了一个自定义方法,即 mymethod()。现在我想通过 ajax 调用这个方法。我已经尝试过link,但它会创建新的 ajax 插件,但我想调用系统插件自定义方法而不是创建新插件。
【问题讨论】:
标签: ajax plugins joomla joomla3.0
我在 joomla 中创建了一个系统插件,并创建了一个自定义方法,即 mymethod()。现在我想通过 ajax 调用这个方法。我已经尝试过link,但它会创建新的 ajax 插件,但我想调用系统插件自定义方法而不是创建新插件。
【问题讨论】:
标签: ajax plugins joomla joomla3.0
您可以使用插件系统事件onAfterInitialise()。
将此网址用于 ajax:index.php?type=mymethod
这导致:
function onAfterInitialise() {
$jinput = JFactory::getApplication()->input;
if($jinput->get('type')=='mymethod') {
// your code here
}
}
【讨论】:
链接正常。您只需要将文件夹名称从 ajax 更改为 system。在 joomla 3.4 之前,必须将插件放置在 ajax 文件夹中,但现在您可以放置在任何文件夹中。您的代码将如下所示
JPluginHelper::importPlugin('system');
$plugin = ucfirst($input->get('plugin'));
$dispatcher = JEventDispatcher::getInstance();
try
{
$results = $dispatcher->trigger('myMethod' . $plugin);
}
catch (Exception $e)
{
$results = $e;
}
按照那里给出的休息说明进行操作。
【讨论】: