2013-10-15 1 views
0

Я создаю компонент Joomla 2.5 и немного затрудняюсь с тем, чтобы кнопка Delete функционировала должным образом. Вот пример кода из view.html.php файла:Ошибка, отображаемая с помощью JToolbar DeleteList Статическая функция

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

ответ

1

Существует только одна проблема, у вас есть. Вам не нужно указывать имя компонента в задаче кнопки. Вам нужно указать имя контроллера вместо имени компонента.

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

Например:

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

Надеется, что это помогает.

+0

Спасибо, я смог заставить его работать. У меня было еще несколько ошибок, но теперь хорошо идти. – Presto

Смежные вопросы