Як відомо, Ajax це певна технологія фонового обміну інформацією браузера з сервером без перезавантаження всього вмісту сторінки. Описувати саму технологію і як вона працює я не буду, статей на цю тему і так предостатньо. Розглянемо використання технології ajax стосовно CMS Joomla 2.5 з використанням JQuery (це один найпростіших варіантів, плюс кроссплатформенность забезпечена).
- Ajax без використання фреймворка Joomla (всі функції, наприклад, робота з базою даних, отримання інформації про користувачів пишемо своїми руками)
- Ajax + фреймворк Joomla 2.5 (маємо можливість використовувати API джумли, наприклад, для отримання інформації про користувача сміливо можемо використовувати код: $ user = JFactory :: getUser)
- Ajax + повноцінне використання всіх можливостей Joomla 2.5, включаючи MVC (модель-в'ю-контролер)
Ajax без використання фреймворка Joomla 2.5
також, куди-небудь в шаблон, компонент або модуль вставляємо кнопку
файл ajax.php, наприклад, виглядає наступним чином
В результаті, при натисканні на кнопку «жміте_сюда», на сервер відправиться «POST» запит з даними «mydata = data». На сервері буде відкритий файл «ajax.php», в якому на PHP ви можете писати будь-який код, і вся видана інформація на відображення буде передана вашому сайту в змінну «tut_dannye_ot_servera». Потім, за допомогою функції jquery ".replaceWith ()", вміст змінної поміщаємо в місце, де раніше був тег з id = # korzina.
В даному варіанті реалізації механізму Joomla 2.5 + ajax ми, на жаль, не можемо використовувати всі принади, які дає нам фреймворк Joomla. Все доведеться писати своїми ручками.
Ajax + фреймворк Joomla 2.5
При такій реалізації, все залишається, як в попередньому варіанті, тільки файл ajax.php буде виглядати по іншому
Тепер ми можемо використовувати API функції Joomla 2.5
Ajax + повноцінне використання всіх можливостей Joomla 2.5, включаючи MVC (модель-в'ю-контролер)
Щоб не створювати зайвих модулів, але, при цьому було б зрозуміло, як все працює, розглянемо даний приклад на модулі «Breadcrumbs». Він виводиться в основному шаблоні «Beez_20» на позиції
змінювати його код нам не знадобитися. Шаблон «Atomic» змінимо так, щоб він виглядав наступним чином:
Функція ініціює запит по ajax буде виглядати так
Як бачимо, в функції змінилися відправляються дані (ми посилаємо інший шаблон), також місце куди потрібно помістити результат (.breadcrumbs). І найголовніше, файл який буде відкриватися при запиті на сервері «index.php».
В результаті Ви побачите, що при натисканні кнопки, яка ініціює запит, у Вас зміниться вміст «Breadcrumbs».
Уявіть, що замість «Breadcrumbs» у Вас корзина замовлень. При такому підході не потрібно писати різний код для виведення її звичайним чином і через ajax. Досить мати певний шаблон, який Joomla буде використовувати для відправки результату. При цьому не потрібно плодити шаблони для кожного модуля. Все можна реалізувати в одному шаблоні.