我在joomla中创建了一个系统插件,并创建了一个mymethod()
的自定义方法。现在我想通过ajax调用此方法。我试过link但它会创建新的ajax插件,但我想调用系统插件自定义方法而不是创建新的插件。
答案 0 :(得分:4)
您可以使用插件系统事件onAfterInitialise()
。
将此网址用于ajax:index.php?type=mymethod
这导致:
function onAfterInitialise() {
$jinput = JFactory::getApplication()->input;
if($jinput->get('type')=='mymethod') {
// your code here
}
}
答案 1 :(得分:1)
链接没问题。您只需将文件夹名称从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;
}
遵循那里给出的休息指示。