asaf — микрофреймворк для ajax ификации форм в drupal 7...
TRANSCRIPT
![Page 1: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/1.jpg)
Asaf — микрофреймворк для
ajax-ификации форм в Drupal 7
Егор Талдыкин
![Page 2: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/2.jpg)
Asaf == ajax submit for any form
drupal.org/project/asaf
![Page 3: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/3.jpg)
Ajax & FormAPI
• Появился в D6
• Мог использоваться для реализации
зависимых элементов
![Page 4: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/4.jpg)
D7 FormAPI ajax engine
![Page 5: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/5.jpg)
Простейший режим работы Asaf
• #ajax для всех кнопок
• обертка вокруг всей формы
• ajax_callback возвращает всю форму
![Page 6: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/6.jpg)
Asaf GUI
![Page 7: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/7.jpg)
Админка (admin/config/system/asaf)
![Page 8: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/8.jpg)
Не поддерживается :(
• прямое обращение к POST url из
валидатора/самбита
• проверка $_POST['op'] == t('Submit')
• TableDrag (поддержка запланирована)
![Page 9: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/9.jpg)
Поддерживается :)
• загрузка файлов
• переходы (redirect/drupal_goto)
• Batch API
• отправка формы по Enter-у (включается в
настройках)
• pagecache
• еще куча всего
![Page 10: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/10.jpg)
Процент работоспособности
~95% форм работает корректно
![Page 11: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/11.jpg)
Asaf API
![Page 12: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/12.jpg)
![Page 13: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/13.jpg)
Перерисовываемая область
![Page 14: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/14.jpg)
Контрол
![Page 15: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/15.jpg)
Точка входа
![Page 16: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/16.jpg)
![Page 17: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/17.jpg)
Основные юзкейсы
• сабмит без перегрузки всей страницы
• зависимые элементы
• добавление полей ввода на лету
• multistep
![Page 18: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/18.jpg)
Ajax-команды
![Page 19: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/19.jpg)
Ajax-команды
![Page 20: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/20.jpg)
Возможности ajax-команд
• изменение HTML за пределами формы
• выполнение кастомных ajax-команд
![Page 21: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/21.jpg)
Управление ajax-командами
• $form_state['asaf_ajax_commands']
• HOOK_asaf_form_ajax_commands_alter
• HOOK_asaf_form_FORM_ID_ajax_commands
_alter
![Page 22: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/22.jpg)
![Page 23: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/23.jpg)
Контрибьюторы — asaf-ицируйтесь!
![Page 24: Asaf — микрофреймворк для ajax ификации форм в drupal 7 (drupalcamp.kiev.2013)](https://reader030.vdocuments.net/reader030/viewer/2022020116/55a2bd221a28ab54268b4576/html5/thumbnails/24.jpg)
Спасибо за внимание
Егор Талдыкин
Ardas Group Inc.
mail: [email protected]
skype: taldykin.egor
d.org: drupal.org/project/asaf