Ajax функціональність за допомогою ajax інтерфейсу com_ajax

Відразу хочу звернути вашу увагу на те, що цей матеріал відноситься до Joomla 3.2+, так як саме в цій версії з'явився зручний AJAX інтерфейс у вигляді компонента com_ajax. Компонент є точкою входу для AJAX запитів в модулі і плагіни.

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

Отже, наш модуль виводить список останніх зареєстрованих користувачів. Щоб показати, як легко можна реалізувати AJAX функціональність в модулі, як приклад зробимо наступне - при кліці на користувача будуть відображати інформацію про нові останніх трьох матеріалів користувача.

Звичайно, це дуже надуманий приклад, так як статті можна було б з легкістю отримати відразу ж зі списком користувачів. Але наше головне завдання полягає в тому, щоб розібратися, як працює AJAX інтерфейс, тому суть прикладу в принципі не важлива.

Готуємо макети виведення

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

Наш модуль має два макети: default і table. Як приклад візьмемо default макет. Всі зміни в розмітці були зроблені між тегами

  • :

    Ми обернули висновок в тег і призначали клас mlu-user. щоб прив'язатися до події кліка. ID користувача виводиться в атрибут data-userid. Також було додано контейнер для виведення відповіді AJAX запиту.

    Додаємо AJAX запит

    Для складання AJAX запиту в модулі ми повинні дотримуватися певних правил, які диктує нам інтерфейс компонента com_ajax. Наступні параметри є обов'язковими при формуванні запиту:

    • option = com_ajax - завжди використовуємо компонент com_ajax;
    • module = module_name - передаємо ім'я модуля, в який ми робимо запит. Важливий момент - ім'я модуля має бути без префікса mod_;
    • format = json - вказуємо формат повертаються даних: raw. json або debug.

    Код AJAX запиту ми додаємо в кінці точки входу модуля mod_latest_users.php:

    Не забудьте додати в мовні файли константи:

    Додаємо AJAX обробник

    Підтримка модулів в AJAX інтерфейсі реалізована через виклик методу в файлі хелпера модуля, назва якого має закінчуватися на Ajax. За замовчуванням префіксом методу є get. в результаті ми отримуємо getAjax ().

    Ми можемо викликати метод з іншим ім'ям, задавши ім'я методу в змінної method при формуванні запиту, наприклад method = myMethod. Таким чином, буде викликаний метод myMethodAjax (). Це дає можливість реалізувати в модулі кілька різних обробників AJAX запитів.

    Ось як виглядає обробник в нашому модулі:

    На прикладі цього матеріалу ми з вами переконалися в тому, що додавання AJAX в модуль Joomla є досить простим завданням завдяки AJAX інтерфейсу. Щасти вам розробки!

    код модуля

    Вихідний код модуля доступний на GitHub: для Joomla 2.5 і для Joomla 3.
    Також ви можете скачати архів: для Joomla 2.5 і для Joomla 3.

    Схожі статті