ajax в drupal 7

Post on 21-Jan-2016

101 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Drupal Camp Minsk 2012. AJAX в Drupal 7. Недостатки AHAH в Drupal 6. Возможность изменения только одной области Нет инструментов, позволяющих загрузить css или js динамически Механизм по перезагрузке полей формы приходится писать самостоятельно - PowerPoint PPT Presentation

TRANSCRIPT

AJAX в Drupal 7

Drupal Camp Minsk 2012

Недостатки AHAH в Drupal 6 Возможность изменения только одной области

Нет инструментов, позволяющих загрузить css или js динамически

Механизм по перезагрузке полей формы приходится писать самостоятельно

Нет возможности загрузить новую форму через AJAX, которая также использовала бы AJAX

Нет единой страницы для AJAX callback

Демонстрация работы AJAX

AJAX и Forms API

#ajax['callback']#ajax['path']#ajax['wrapper']#ajax['effect']#ajax['event']#ajax['keypress']#ajax['method']#ajax['progress']#ajax['trigger_as']

Обработка #ajax[‘callback’]

Запрос посылается на /system/ajax

Загружается форма из {cache_block}

Обработка загруженной формы

Вызов функции из #ajax[‘callback’]

Создание AJAX страниц

Команды AJAX Framework

Серверная часть – массив данных

Команды AJAX Framework

Клиентская часть - набор функций массива

Drupal.ajax.prototype.commands

Команды AJAX Framework ajax_command_after($selector, $html, $settings = NULL) ajax_command_alert($text) ajax_command_append($selector, $html, $settings = NULL) ajax_command_before($selector, $html, $settings = NULL) ajax_command_changed($selector, $asterisk = '') ajax_command_css($selector, $argument) ajax_command_data($selector, $name, $value) ajax_command_html($selector, $html, $settings) ajax_command_insert($selector, $html, $settings = NULL) ajax_command_invoke($selector, $method, $arguments =

array()) ajax_command_prepend($selector, $html, $settings = NULL) ajax_command_remove($selector) ajax_command_replace($selector, $html, $settings = NULL) ajax_command_restripe($selector) ajax_command_settings($argument, $merge = FALSE)

Создание своей AJAX команды

Серверная часть

Создание своей AJAX команды

Клиентская часть

ajax_deliver()

1. Выставление правильных хедеров для ответа от сервера

2. Обработка данных из page callback3. Загрузка добавленных css и js4. Изменение настроек в

Drupal.settings5. Преобразование AJAX комманд в

JSON6. Вызов хука hook_exit()

Создание AJAX ссылок

Перезагрузка форм

1. Создание селектора для AJAX ответа

2. Добавление #ajax атрибута

Перезагрузка форм

3. Написание обработчика AJAX

Создание многошаговых форм

1. Создание селектора для AJAX ответа

2. Получение текущего шага

Создание многошаговых форм

3. Создание элементов в зависимости от шага

Создание многошаговых форм

4. Добавляем к кнопкам AJAX

5. Пишем AJAX обработчик

Создание многошаговых форм

6. Пишем к форме функцию сабмита

Chaos Tools и AJAX

Дополнительные AJAX команды ctools_ajax_command_attr($selector, $name, $value) ctools_ajax_command_redirect($url, $delay = 0, $options =

array()) ctools_ajax_command_reload() ctools_ajax_command_submit($selector)

Работа с мультистеп формами

Работа с модальными окнами

Примеры в модуле ctools_ajax_sample

Спасибо за внимание!

Масловский Евгений

http://drupalace.ru

top related