使用 JToolbar 删除列表静态函数显示错误



我正在构建一个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');

希望这对你有帮助。

相关内容

  • 没有找到相关文章

最新更新