Home News

AJAX функциональность с помощью AJAX интерфейса com_ajax

23.06.2017

видео AJAX функциональность с помощью AJAX интерфейса com_ajax

Организация B2B интеграции с использованием 1С и JMS

Сразу хочу обратить ваше внимание на то, что этот материал относится к Joomla 3.2+, так как именно в этой версии появился удобный AJAX интерфейс в виде компонента com_ajax. Компонент является точкой входа для AJAX запросов в модули и плагины.


POLYBIUS - The Video Game That Doesn't Exist

Постановка задачи

Итак, наш модуль выводит список последних зарегистрированных пользователей. Чтобы показать, как легко можно реализовать AJAX функциональность в модуле, в качестве примера сделаем следующее – при клике на пользователя будут отображаться заголовки последних трех материалов пользователя.


Week 12

Конечно, это очень надуманный пример, так как статьи можно было бы с легкостью получить сразу же со списком пользователей. Но наша главная задача состоит в том, чтобы разобраться, как работает AJAX интерфейс, поэтому суть примера в принципе не важна.

Подготавливаем макеты вывода

В макетах нам нужно предусмотреть вывод ID пользователя, чтобы затем передать его в AJAX запрос. Также нам нужно добавить контейнер для вывода списка материалови обернуть вывод пользователя в ссылку, чтобы привязаться к событию клика.

Наш модуль имеет два макета: default и table. В качестве примера возьмем default макет. Все изменения в разметке были сделаны между тегами <li>:

<li> <a href="#" class="mlu-user" data-userid="<?php echo $user->id; ?>"> <?php if ($displayMode == 0) : ?> <?php echo $user->username; ?> <?php elseif ($displayMode == 1) : ?> <?php echo $user->name; ?> <?php elseif ($displayMode == 2) : ?> <?php echo $user->username; ?> (<?php echo $user->name; ?>) <?php endif; ?> </a> <div id="mlu-container-<?php echo $user->id; ?>" style="display:none"></div> </li>

Мы обернули вывод в тег <a> и назначали класс mlu-user, чтобы привязаться к событию клика. ID пользователя выводится в атрибут data-userid. Также был добавлен контейнер для вывода ответа AJAX запроса.

rss