За специфікою моєї роботи мені часто доводиться спілкуватися з розробниками, в тому числі розробниками на 1С-Бітрікс. При постановці завдань з оновленням даних без перезавантаження сторінки (Ajax) я часто чув про істотне збільшення термінів тільки через цю особливість. Після чергової такої розмови, я провів вебінар для своїх розробників, який розвіює міф про те, що Ajax складно інтегрується в Бітрікс. За матеріалами того вебінару я пишу цю статтю, сподіваюся вона допоможе іншим розробникам.
Розробляти ми будемо систему виведення випадкової цитати з Інфоблоки, з можливістю поставити лайк сподобалася цитаті.
Для початку створимо новий інфоблок «Цитати», додамо одну властивість типу число, з назвою «Рейтинг» і системним ім'ям «RATING».
Далі наповнимо інфоблок декількома тестовими записами.
Наступним кроком ми створимо папку «ajax / quotes» в корені сайту.
Всі запити можна розділити на два типи:
- Отримання даних з сервера
- Ефективно використовувати час
Домовимося, що для запитів першого типу сервер буде віддавати html.
Для запитів другого типу - Json.
Далі ми розглянемо обидва цих типу, але перед цим ми повинні розмістити компонент виведення випадкової цитати в шаблон сайту.
Для цього відкриємо на редагування файл index.php і в потрібне місце додамо наступний код (звертаю увагу, що необхідно скопіювати шаблон компонента news.list і назвати його - quotes):
Попередньо замінивши IBLOCK_IDD на ID вашого Інфоблоки цитат.
Для обробки кліка, необхідно додати наступний код у файлі script.js і підключити його в шаблоні:
Далі, для обробки лайка додамо jquery-код в наш скрипт script.js:
В ідеалі - слід створити компонент з цим кодом і підключити його в цьому файлі, але залишимо це вам в якості домашнього завдання.
Ось ми і розглянули процес реалізації ajax на CMS 1С-Бітрікс. Як ви можете бачити нічого складного. На основі цих двох прикладів може бути реалізована будь-яка інша логіка.