В этой статье я расскажу как сделать 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 примером работы!