控制器/JToolBar 在 Joomla 2.5 中不起作用


Controller/JToolBar not working in Joomla 2.5

相关代码:

JToolBarHelper::custom('saveCategories', 'save', '', 'Save', false, false);
...
<input type="hidden" name="controller" value="EasyBlogController">

根据我可以从文档中挖掘的内容和我自己之前的问题,这应该在EasyBlogController中调用saveCategories()函数。 我尝试将值设置为 easyblogeasyblog.php(文件名)以及当前EasyBlogController(类名)。

单击"保存"按钮仅刷新页面。 它不会重定向、echovar_dump我在saveCategories()函数中放入的任何测试代码。 var_dump JRequest::getVar('controller')'task'返回正确的值。 创建一个控制器对象,然后使用$controller->execute('task');就可以了。

您要查找的值显然取决于您尝试调用的控制器的位置,这里有几个选项。通常,组件(可能是组件/com_easyblog)的基本文件夹中有一个控制器,该控制器位于名为 Controller 的文件中.php其中的类名将是 EasyBlogController。

还可能存在一个控制器文件夹(组件/com_easyblog/控制器),其中包含特定视图的控制器。通常在这种情况下,你会有一个名为"something.php"的文件,而类将是"EasyBlogControllerSomething"。对于此选项,您将使用以下方法调用此控制器的 saveCategory 函数:

JToolBarHelper::custom('Something.saveCategories', 'save', '', 'Save', false, false);

否则,如果您只想要基本控制器,请不要指定控制器,因为系统将默认为控制器.php文件。如以下:

JToolBarHelper::custom('saveCategories', 'save', '', 'Save', false, false); //no hidden input after this

如果要设置默认控制器以外的控制器,请将此 html 添加到视图中:

<input type="hidden" name="controller" value="controllerNameHere"/>

尝试:

JToolBarHelper::custom('EasyBlogController.saveCategories', 'save', '', 'Save', false, false);

但请确保您的控制器名为 EasyBlogController.php并且具有一个名为 saveCategories() 的函数