ݺߣ

ݺߣShare a Scribd company logo
Form API
                         Attila Cs. Nagy
                         March 14, 2013




Tuesday, March 26, 13
HTML form tag
Tuesday, 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 API
                        http://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 API
Tuesday, March 26, 13
Examples module
                         form_example
                         http://drupal.org/project/examples




Tuesday, March 26, 13
How does it work?
Tuesday, March 26, 13
hook_menu
                        http://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_state
Tuesday, March 26, 13
Tuesday, March 26, 13
Validation




Tuesday, March 26, 13
Validation
               $form_id_validate($form, &$form_state) {




Tuesday, March 26, 13
#element_validate
Tuesday, March 26, 13
submit handling
Tuesday, March 26, 13
$form_id_submit($form, &$form_state) {




Tuesday, March 26, 13
hook_form_alter
                        http://api.drupal.org/api/drupal/modules%21system
                         %21system.api.php/function/hook_form_alter/7




Tuesday, March 26, 13
States API
                        http://api.drupal.org/api/examples/form_example
                             %21form_example_states.inc/function/




Tuesday, March 26, 13
system_settings_form
                        http://api.drupal.org/api/drupal/modules!system!
                        system.module/function/system_settings_form/7




Tuesday, March 26, 13
hook_element_info
                        http://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

More Related Content

Drupal Course 2013 - Form API