Варіанти використання технології ajax в joomla 2

Як відомо, Ajax це певна технологія фонового обміну інформацією браузера з сервером без перезавантаження всього вмісту сторінки. Описувати саму технологію і як вона працює я не буду, статей на цю тему і так предостатньо. Розглянемо використання технології ajax стосовно CMS Joomla 2.5 з використанням JQuery (це один найпростіших варіантів, плюс кроссплатформенность забезпечена).

  1. Ajax без використання фреймворка Joomla (всі функції, наприклад, робота з базою даних, отримання інформації про користувачів пишемо своїми руками)
  2. Ajax + фреймворк Joomla 2.5 (маємо можливість використовувати API джумли, наприклад, для отримання інформації про користувача сміливо можемо використовувати код: $ user = JFactory :: getUser)
  3. 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 буде використовувати для відправки результату. При цьому не потрібно плодити шаблони для кожного модуля. Все можна реалізувати в одному шаблоні.

Схожі статті