form api intro

Post on 15-Jan-2015

2.373 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

An introduction to Drupal's FormAPI, as of version 5.

TRANSCRIPT

Forms API Inside OutOr, How I Learned to Stop Worrying

and Love the Nested Arrays

1

The Olden Days

In the beginning, there was HTML

Then, there were helper functions

Each form had to reinvent workflow

Each form had to reinvent security

The Node Form made Baby Jesus cry

2

Drupal’s Answer: Forms API

Build forms as structured data

Make the workflow automatic

Make ‘doing the right thing’ easy

When everything is done, render to HTML

3

So, What’s It Look Like? function my_form() { $form = array();

$form['foo'] = array( '#type' => 'textarea', '#title' => t('Your foo'), ); $form['submit'] = array( '#type' => 'submit', '#value' => t('Submit yo foo'), );

return $form;}

4

So, What’s It Look Like?

5

How to Use Your Form

drupal_get_form('my_form')

my_form()

my_form_validate(...)

my_form_submit(...)

6

http://foo.com/my-form

Behind the Scenes

my_form_page()drupal_get_form('my_form')

my_form()(Here, magic happens*)

drupal_render($form)

7

Behind the Scenes (Part 2)

Here’s that form you gave me

my_form()

my_form_submit(...)

my_form_validate(...)

$_POST has data!

drupal_get_form('my_form')

8

Recap, With KittensCall drupal_get_form(‘my_form’)

The my_form() function builds an array

Drupal sanity checks $_POST

The my_form_validate() function validates

The my_form_submit() function processes

The drupal_render() function outputs the form.T. Keller

9

Build the initial form definition

drupal_process_form()

drupal_build_form()

hook_form_alter()

_form_builder()

Here’s the Magic

10

Here’s the Magic

_form_builder() does a lot!

Handles defaults

Weaves $_POST into the form

Builds $form_values

Inserts security tokens

11

“Special” Bits

hook_elements()

hook_form_alter()

drupal_execute()

12

Current Limitations

Dynamic AHAH/AJAX

Wizard-style forms

Too many special cases

AHAH/AJAX security!

13

The Future of Forms API

Form chunks

State management

AHAH/AJAX security

14

Whee!

15

top related