Form API в Drupal 7.
 "Вкусности" и "красоты"


Дмитрий Олареско
WDG
dmitry.olaresko@wdg.com.ua
План доклада
 Часть 1. Основы Form API.


Как работает Form API?
Создание своих форм
Элементы и свойства
Validate и Submit форм
План доклада
Часть 2. "Вкусности" и "красоты"

  hook_form_alter(),
    hook_form_FORM_ID_alter()
  Свойство #tree
  Cвойство #autocomplete_path
  Свойства #limit_validation_errors и
    #executes_submit_callback
  Зависимости. #states
  AJAX (AHAH) в Form API
Как работает Form API?

  http://example.com/my-form

  my_form_page()

  drupal_get_form('my_form')

  my_form()

  (* Магия Drupal *)

  drupal_render($form)
Как работает Form API?

 drupal_get_form('my_form')

   my_form()

   my_form_validate()

   my_form_submit()
Создание своих форм
Элементы Form API

textfield     fieldset
textarea      container
password      tableselect
select        markup
radios        item
checkboxes    submit
value         vertical_tabs
hidden        managed_file
date          и др.
Свойства всех элементов

       #type
       #access
       #after_build
       #theme
       #prefix
       #suffix
       #title
       #weight ('#delta' => 10)
       #default_value
Валидация формы
Валидация элементов
Подтверждение (Submit) форм
"Вкусности" и "красоты"
hooks
Свойство #tree
Cвойство #autocomplete_path
Свойства #limit_validation_errors и
   #executes_submit_callback
Зависимости. #states
AJAX (AHAH) в Form API
Параметры #ajax

#ajax['callback']
#ajax['path']
#ajax['wrapper']
#ajax['effect']
#ajax['speed']
#ajax['event']
#ajax['method']
#ajax['progress']
Команды Drupal AJAX framework




http://api.drupal.org/api/drupal/includes!ajax.inc/
  group/ajax_commands/7
Submit с помощью AJAX
Полезные ссылки
http://api.drupal.org/api/drupal/developer!topics!
   forms_api_reference.html/7
http://api.drupal.org/api/drupal/includes!ajax.inc/group/ajax/
   7
Form API Quickstart - http://drupal.org/node/751826
http://drupal.org/project/examples
Step-by-step tutorial - http://drupal.org/node/262422
http://api.drupal.org/api/drupal/includes!
   common.inc/function/drupal_process_states/7
http://api.drupal.org/api/drupal/includes!ajax.inc/group/ajax/
   7
Form API в Drupal 7.
 "Вкусности" и "красоты"


Дмитрий Олареско
WDG
dmitry.olaresko@wdg.com.ua

Drupal Cafe №5 Харьков. Drupal 7 Form API.