Field formatters

21
Field/CCK Formatters “God has given you one face, and you make yourself another.” - Fortune cookie in my desk drawer Helior Colorado [email protected]

Transcript of Field formatters

Page 1: Field formatters

Field/CCK Formatters“God has given you one face, and you make yourself another.” - Fortune cookie in my desk drawer

Helior [email protected]

Page 2: Field formatters

What are Field Formatters?

Page 3: Field formatters

What are Field Formatters?•Means to present field data in a

displaying entity

Page 4: Field formatters

What are Field Formatters?•Means to present field data in a

displaying entity• Is pluggable

Page 5: Field formatters

What are Field Formatters?•Means to present field data in a

displaying entity• Is pluggable•Provides a layer of configurability

Page 6: Field formatters

What are Field Formatters?•Means to present field data in a

displaying entity• Is pluggable•Provides a layer of configurability• Is extendable via various methods

Page 7: Field formatters

What are Field Formatters?•Means to present field data in a

displaying entity• Is pluggable•Provides a layer of configurability• Is extendable via various methods• If done right, can be reused in any

site

Page 8: Field formatters

Defining a Field Formatter:hook_field_formatter_info()

label

description

field types

multiple values

settings

Page 9: Field formatters

Rendering a Field Formatter:

hook_field_formatter_view()

Return an array or renderable arrays – “N is the only number”

Page 10: Field formatters

Providing configurations:hook_field_formatter_settings_form()

Standard Form API stuff.

Returning a new form element.

This will help:

$display = $instance['display'][$view_mode];$settings = $display['settings'];

Page 11: Field formatters

Displaying configuration summary:hook_field_formatter_settings_summary()

Output a string of whatever you think is meaningful.

Page 12: Field formatters

Pre-build formatter processing:hook_field_prepare_view()

Custom data massaging goes here.

Rarely used.

Page 13: Field formatters

Review the steps:

Page 14: Field formatters

Review the steps:• Define formatter

hook_field_formatter_info()

Page 15: Field formatters

Review the steps:• Define formatter

hook_field_formatter_info()

• Return array of renderable arrayshook_field_formatter_view($entity_type, $entities, $field, $instances, $langcode, &$items, $display)

Page 16: Field formatters

Review the steps:• Define formatter

hook_field_formatter_info()

• Return array of renderable arrayshook_field_formatter_view($entity_type, $entities, $field, $instances, $langcode, &$items, $display)

• Optionally provide settingshook_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state)

Page 17: Field formatters

Review the steps:• Define formatter

hook_field_formatter_info()

• Return array of renderable arrayshook_field_formatter_view($entity_type, $entities, $field, $instances, $langcode, &$items, $display)

• Optionally provide settingshook_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state)

• Optionally display settings summaryhook_field_formatter_settings_summary($field, $instance, $view_mode)

Page 18: Field formatters

Review the steps:• Define formatter

hook_field_formatter_info()

• Return array of renderable arrayshook_field_formatter_view($entity_type, $entities, $field, $instances, $langcode, &$items, $display)

• Optionally provide settingshook_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state)

• Optionally display settings summaryhook_field_formatter_settings_summary($field, $instance, $view_mode)

• Optionally prepare data before buildhook_field_prepare_view($entity_type, $entities, $field, $instances, $langcode, &$items, $display)

Page 19: Field formatters

Review the steps:• Define formatter

hook_field_formatter_info()

• Return array of renderable arrayshook_field_formatter_view($entity_type, $entities, $field, $instances, $langcode, &$items, $display)

• Optionally provide settingshook_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state)

• Optionally display settings summaryhook_field_formatter_settings_summary($field, $instance, $view_mode)

• Optionally prepare data before buildhook_field_prepare_view($entity_type, $entities, $field, $instances, $langcode, &$items, $display)

Useful helpers:

Page 20: Field formatters

Review the steps:• Define formatter

hook_field_formatter_info()

• Return array of renderable arrayshook_field_formatter_view($entity_type, $entities, $field, $instances, $langcode, &$items, $display)

• Optionally provide settingshook_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state)

• Optionally display settings summaryhook_field_formatter_settings_summary($field, $instance, $view_mode)

• Optionally prepare data before buildhook_field_prepare_view($entity_type, $entities, $field, $instances, $langcode, &$items, $display)

Useful helpers:• field_info_formatter_types()• field_info_formatter_settings()• field_view_field()• field_view_value()

Page 21: Field formatters

Ideas for Workshop★ HTML5 Audio playback controller★ Email address “mailto:” link★ Link to Twitter account with selectable

styles

★ Lightbox-like gallery for images★ Custom date from timestamp★ Fully customizable link from a path