致命错误:在joomla中调用未定义的方法JToolbarHelper :: deleteListX()

时间:2014-12-26 12:14:15

标签: php joomla

protected function addToolBar() 
{
    JToolBarHelper::title(JText::_('COM_HELLOWORLD_MANAGER_HELLOWORLDS'), 'helloworld');
    JToolBarHelper::deleteListX('', 'helloworlds.delete');
    JToolBarHelper::editListX('helloworld.edit');
    JToolBarHelper::addNewX('helloworld.add');
}

此语法中的错误是什么

1 个答案:

答案 0 :(得分:3)

根据Joomla docs,类JToolBarHelper在

中定义

但是,该课程中没有这样的方法。检查提交历史记录表明该方法已在

中删除

因此,如果您收到此错误,则代码是为旧版本的Joomla编写的。

deleteListX的代码是:

/**
 * Writes a common 'delete' button for a list of records.   
 * Extended version of deleteList() calling hideMainMenu() before Joomla.submitbutton().    
 *  
 * @param   string $msg Postscript for the 'are you sure' message.  
 * @param   string $task An override for the task.  
 * @param   string $alt An override for the alt text.   
 * @since   1.0     
 * @deprecated  
 */     
 static function deleteListX($msg = '', $task = 'remove', $alt = 'JTOOLBAR_DELETE')     
 {  
    self::deleteList($msg, $task, $alt);    
 }

正如您所看到的那样,它只是将对deleteList的调用包裹起来,而这被定义为

/**
* Writes a common 'delete' button for a list of records.
*
* @param    string $msg Postscript for the 'are you sure' message.
* @param    string $task An override for the task.
* @param    string $alt An override for the alt text.
* @since    1.0
*/
public static function deleteList($msg = '', $task = 'remove', $alt = 'JTOOLBAR_DELETE')

所以你可以替换你的

JToolBarHelper::deleteListX('', 'helloworlds.delete');

直接通话

JToolBarHelper::deleteList('', 'helloworlds.delete')

请注意,editListXaddNewX也已被删除。所以你会得到同样的错误。检查已删除的源代码并根据需要调整方法。