Asaf — микрофреймворк для
ajax-ификации форм в Drupal 7
Егор Талдыкин
Asaf == ajax submit for any form
drupal.org/project/asaf
Ajax & FormAPI
• Появился в D6
• Мог использоваться для реализации
зависимых элементов
D7 FormAPI ajax engine
Простейший режим работы Asaf
• #ajax для всех кнопок
• обертка вокруг всей формы
• ajax_callback возвращает всю форму
Asaf GUI
Админка (admin/config/system/asaf)
Не поддерживается :(
• прямое обращение к POST url из
валидатора/самбита
• проверка $_POST['op'] == t('Submit')
• TableDrag (поддержка запланирована)
Поддерживается :)
• загрузка файлов
• переходы (redirect/drupal_goto)
• Batch API
• отправка формы по Enter-у (включается в
настройках)
• pagecache
• еще куча всего
Процент работоспособности
~95% форм работает корректно
Asaf API
Перерисовываемая область
Контрол
Точка входа
Основные юзкейсы
• сабмит без перегрузки всей страницы
• зависимые элементы
• добавление полей ввода на лету
• multistep
Ajax-команды
Ajax-команды
Возможности ajax-команд
• изменение HTML за пределами формы
• выполнение кастомных ajax-команд
Управление ajax-командами
• $form_state['asaf_ajax_commands']
• HOOK_asaf_form_ajax_commands_alter
• HOOK_asaf_form_FORM_ID_ajax_commands
_alter
Контрибьюторы — asaf-ицируйтесь!
Спасибо за внимание
Егор Талдыкин
Ardas Group Inc.
mail: [email protected]
skype: taldykin.egor
d.org: drupal.org/project/asaf