0

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

4

1 回答 1

1

你只有一个问题。您不需要将组件名称放在按钮任务上。您需要输入控制器名称而不是组件名称。

if ($canDo->get('core.delete'))
{
    JToolBarHelper::deleteList('You Really Wanna Delete that', 'controllerName.delete', 'JTOOLBAR_DELETE');
}

例如 :

JToolBarHelper::deleteList('delete', 'hellos.delete','JTOOLBAR_DELETE');

希望这对您有所帮助。

于 2013-10-16T04:57:10.100 回答