2012-06-04 1 views
0

Соответствующий код:Контроллер/JToolBar не работает в Joomla 2.5

JToolBarHelper::custom('saveCategories', 'save', '', 'Save', false, false); 
... 
<input type="hidden" name="controller" value="EasyBlogController"> 

Согласно тому, что я могу выкопать из docs и моей previous questions, этого следует вызвать функцию saveCategories() в EasyBlogController. Я попытался установить значение easyblog, easyblog.php (имя файла), а также текущий EasyBlogController (Имя класса).

Нажатие на кнопку «Сохранить» только обновляет страницу. Он не перенаправляет, echo или var_dump любой тестовый код, который я положил в функцию saveCategories(). var_dump ing JRequest::getVar('controller') и 'task' верните правильные значения. Создание объекта контроллера, а затем использование $controller->execute('task'); работ.

ответ

2

Значения, которые вы собираетесь для зависят явно от местоположения контроллер, который вы пытаетесь вызвать, и у вас есть пара вариантов здесь. Как правило, в базовой папке компонента (вероятные компоненты/com_easyblog) есть контроллер, который находится в файле с именем controller.php, а имя класса внутри него будет EasyBlogController.

Может быть также папка контроллеров (components/com_easyblog/controller), которая будет содержать контроллеры для определенных видов. Как правило, в этом случае у вас будет файл с именем «something.php», а класс будет «EasyBlogControllerSomething». Для этого варианта вы могли бы назвать функцию saveCategories этого контроллера с помощью следующих действий:

JToolBarHelper::custom('Something.saveCategories', 'save', '', 'Save', false, false); 

В противном случае, если вы просто хотите, базовый контроллер, просто не указать контроллер, так как система будет по умолчанию к контроллеру. php-файл. Такие, как:

JToolBarHelper::custom('saveCategories', 'save', '', 'Save', false, false); //no hidden input after this 

Если вы хотите установить контроллер, кроме по умолчанию, добавьте этот HTML на ваш взгляд:

<input type="hidden" name="controller" value="controllerNameHere"/> 
+0

Я понял это вчера, но спасибо! Это действительно полезно, я добавил немного о настройке настраиваемого контроллера. – SomeKittens

-1

Try:

JToolBarHelper::custom('EasyBlogController.saveCategories', 'save', '', 'Save', false, false); 

Но убедитесь, что ваш контроллер называется EasyBlogController.php и имеет функцию под названием saveCategories()

+0

К сожалению, это просто неправильно. Он задает задачу «EasyBlogControllersaveCategories» – SomeKittens