ошибка 500 в Joomla

’tag’

Добавление контроллера к компоненту в Joomla 1.7

Май 26, 2012

Сначала необходимо создать файл controller.php в папке с компонентом в открытой части сайта:
/components/com_simple/controller.php

Для работы контроллера необходимо подключить стандартный класс контроллера:

jimport('joomla.application.component.controller');

Далее создается класс с именем компонента:

class SimpleController extends JController

К примеру, пользователь вводит в строке браузера:
http://localhost/joomla17/index.php?option=com_simple&task=delete

Для того, чтобы обработать task, т.е. задачу, требуется создать функцию в controller.php с аналогичным именем:

class SimpleController extends JController
{
	public function delete()
	{
		echo "Удаление";
	}
}

На экране пользователь в рамках использованного шаблона для отображения сайта увидит сообщение "Удаление".

Однако, я не указал, как будет получено значение task и как контроллер взаимодействует с компонентом.

В файл компонента в открытой части simple.php добавляется аналогичная запись импорта класса контроллера:

jimport('joomla.application.component.controller');

Далее получается контроллер для нашего компонента по имени:

$controller = JController::getInstance('Simple');

После в контроллер сообщается значение task:

$controller->execute(JRequest::getCmd('task'));

В завершение прописывается строка, отвечающая за перенаправление:

$controller->redirect();

Принцип работы

При запуске компонента вызывается основной файл simple.php, в котором запрашивается контроллер. Контроллер получает значение task и вызывает соответствующую функцию. При необходимости осуществляется перенаправление.

Если же в контроллере нет соответствующей task функции, то работа компонента прекращается и исполнение заканчивается выводом на экран пользователя ошибкой 500.

Tags: , , , , , , , , ,
Записано в Joomla, Программирование    |    Постоянная ссылка