我正在构建一个Joomla 2.5组件,在使Delete
按钮正常运行时遇到了一些麻烦。 下面是 view.html.php
文件中的示例代码:
if ($canDo->get('core.delete'))
{
JToolBarHelper::deleteList('You Really Wanna Delete that', mycomponentname.delete, 'JTOOLBAR_DELETE');
当我从下拉列表中选择一个项目并单击删除时,我得到以下弹出窗口:
You Really Wanna Delete that
这样做的问题是,当我单击选项以验证弹出窗口中的删除时,我被重定向到500错误消息,并且该项目未被删除。
现在,当我在这里查看Joomla文档时:
http://docs.joomla.org/JToolBarHelper
我看到JToolBarHelper
是在administrator/includes/toolbar.php
中定义的. 所以我去参观了那里的deleteList
信息。 我看到以下代码:
public static function deleteList($msg = '', $task = 'remove', $alt = 'JTOOLBAR_DELETE')
{
$bar = JToolBar::getInstance('toolbar');
// Add a delete button.
if ($msg) {
$bar->appendButton('Confirm', $msg, 'delete', $alt, $task, true);
} else {
$bar->appendButton('Standard', 'delete', $alt, $task, true);
}
}
因此,我尝试通过将第二个参数$task = 'remove'
更改为remove
而不是mycomponentname.delete
来调整我的脚本,如下所示:
JToolBarHelper::deleteList('You Really Wanna Delete that', 'remove', 'JTOOLBAR_DELETE');
这将消除 500 错误,但不会删除该项目。 我在这里错过了什么? 我的猜测是这与mycomponentname.delete
功能配置不正确有关。
PS-我应该补充一点,500错误指出:
Layout default not found
你只有一个问题。您无需将组件名称放在按钮任务上。您需要输入控制器名称而不是组件名称。
if ($canDo->get('core.delete'))
{
JToolBarHelper::deleteList('You Really Wanna Delete that', 'controllerName.delete', 'JTOOLBAR_DELETE');
}
例如:
JToolBarHelper::deleteList('delete', 'hellos.delete','JTOOLBAR_DELETE');
希望这对你有帮助。