В этой статье я расскажу как сделать AJAX запрос в плагин Joomla 2.5+

На самом деле все довольно просто, но нужно знать несколько особенностей! 

Для начала лучше всего использовать плагин который будет в группе system, если же мы будем использовать плагин в группе content будут проблемы с кешированием!

Для перехвата AJAX запроса в плагин лучше всего использовать метод onAfterInitialise, который нужно вставить в класс нашего плагина, перехватить наше событие и выйти из приложения, что бы не загружался весь сайт!

Для наглядности приведем пример:

public function onAfterInitialise()
{
	$input = JFactory::getApplication()->input;
	//перехватываем событие
	if ( $input->getCmd( 'action', '' ) === 'getTitle' ) {
		$id = $input->getInt( 'id', 0 );
		$db = JFactory::getDbo();
		$query = $db->getQuery( true );
		$query->select( 'id, title' )->from( '#__content' )->where( 'id=' . $id );
		$row = $db->setQuery( $query )->loadObject();
		if ( !empty( $row->id ) ) {
			echo 'Запись с ID ' . $id . ' имеет заголовок: ' . $row->title;
		} else {
			echo 'Запись с ID ' . $id . ' не найдена: ';
		}
		exit; //выходим из приложения
	}
}

Далее нам нужно сделать запрос:index.php?action=getTitle&id=1

Во время обращения по ссылке подключаться на каком то этапе работы сайта плагины из группы system. и выполняться триггер onAfterInitialise, в нем мы проверяем или в $_REQUEST есть переменная action и равно ли её значение "getTitle". Если есть, то выполняем какие то действия, и в конце выполненных действий пишем оператор exit;, для остановки дальнейшего выполнения сайта!

Читайте также:

Ниже вы можете скачать плагин c примером работы!