Варіанти використання технології ajax у Joomla 2
Ще одна копія хабора
Головне меню
Навігація за записами
Варіанти використання технології ajax у Joomla 2.5
- Ajax без використання фреймворку Joomla (всі функції, наприклад, робота з базою даних, отримання інформації про користувачів пишемо своїми руками)
- Ajax + фреймворк Joomla 2.5 (маємо можливість використовувати API джумли, наприклад, для отримання інформації про користувача сміливо можемо використовувати код: $user = JFactory::getUser)
- Ajax + повноцінне використання всіх можливостей Joomla 2.5, включаючи MVC (модель-в'ю-контролер)
Ajax без використання фреймворку Joomla 2.5
Всі приклади розглядатимемо з даними Joomla 2.5, які ставляться при її інсталяції, шаблон за замовчуванням Beez_20. Для початку в якійсь частині шаблону вставимо функцію на JavaScript, яка надсилає запит на сервер за допомогою jquery. Виглядатиме вона наступним чином:
також, кудись у шаблон, компонент або модуль вставляємо кнопку
файл 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 буде виглядати інакше
Тепер ми можемо використовувати функції Joomla 2.5 API
Ajax + повноцінне використання всіх можливостей Joomla 2.5, включаючи MVC (модель-в'ю-контролер)
Щоб не створювати зайвих модулів, але, при цьому було б зрозуміло, як усе працює, розглянемо цей приклад на модулі "Breadcrumbs". Він виводиться в основному шаблоні Beez_20 на позиції
змінювати його код нам не потрібно. Шаблон «Atomic» змінимо так, щоб він виглядав так:
Функція ініціює запит по ajax виглядатиме так
Як бачимо, у функції змінилися дані, що відправляються (ми посилаємо інший шаблон), також місце куди потрібно помістити результат (.breadcrumbs). І найголовніше, файл, який буде відкриватися при запиті на сервері «index.php». В результаті Ви побачите, що при натисканні кнопки, що ініціює запит, Ви зміните вміст «Breadcrumbs».
Уявіть, що замість "Breadcrumbs" у Вас кошик замовлень. При такому підході не потрібно писати різний код для виведення її звичайним чином та через ajax. Достатньо мати певний шаблон, який Joomla буде використовувати для надсилання результату. При цьому не потрібно розмножувати шаблони для кожного модуля. Все можна продати в одному шаблоні.