drupal course 2013 - form api
DESCRIPTION
TRANSCRIPT
Form APIAttila Cs. NagyMarch 14, 2013
Tuesday, March 26, 13
HTML form tagTuesday, March 26, 13
form tag
• <input>
• <textarea>
• <button>
• <select>
• <option>
• ...
Tuesday, March 26, 13
Why are we loving APIs?
Tuesday, March 26, 13
API
• Reusability
• Standard solutions
• Encapsulation
• Connection point
Tuesday, March 26, 13
hook system
Tuesday, March 26, 13
Tuesday, March 26, 13
module foo
Tuesday, March 26, 13
module foo
hook_bar
Tuesday, March 26, 13
module foo
function foo_bar() {
hook_bar
Tuesday, March 26, 13
Form APIhttp://api.drupal.org/api/drupal/developer%21topics
%21forms_api_reference.html/7
Tuesday, March 26, 13
Form API
• Generate HTML
• Handle security issues
• Validation
• Ajax
• States
Tuesday, March 26, 13
Form APITuesday, March 26, 13
Examples moduleform_examplehttp://drupal.org/project/examples
Tuesday, March 26, 13
How does it work?Tuesday, March 26, 13
hook_menuhttp://api.drupal.org/api/drupal/modules%21system
%21system.api.php/function/hook_menu/7
Tuesday, March 26, 13
drupal_get_form($form_id);http://api.drupal.org/api/drupal/includes%21form.inc/
function/drupal_get_form/7
Tuesday, March 26, 13
$form_stateTuesday, March 26, 13
Tuesday, March 26, 13
Validation
Tuesday, March 26, 13
Validation
$form_id_validate($form, &$form_state) {
Tuesday, March 26, 13
#element_validateTuesday, March 26, 13
submit handlingTuesday, March 26, 13
$form_id_submit($form, &$form_state) {
Tuesday, March 26, 13
hook_form_alterhttp://api.drupal.org/api/drupal/modules%21system
%21system.api.php/function/hook_form_alter/7
Tuesday, March 26, 13
States APIhttp://api.drupal.org/api/examples/form_example
%21form_example_states.inc/function/
Tuesday, March 26, 13
system_settings_formhttp://api.drupal.org/api/drupal/modules!system!system.module/function/system_settings_form/7
Tuesday, March 26, 13
hook_element_infohttp://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_element_info/7
Tuesday, March 26, 13
Questions?
Tuesday, March 26, 13
Tuesday, March 26, 13