Field formatters

Post on 08-May-2015

1,013 views 0 download

transcript

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

Helior Coloradoihatespam@helior.info

What are Field Formatters?

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

displaying entity

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

displaying entity• Is pluggable

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

displaying entity• Is pluggable•Provides a layer of configurability

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

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

Defining a Field Formatter:hook_field_formatter_info()

label

description

field types

multiple values

settings

Rendering a Field Formatter:

hook_field_formatter_view()

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

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'];

Displaying configuration summary:hook_field_formatter_settings_summary()

Output a string of whatever you think is meaningful.

Pre-build formatter processing:hook_field_prepare_view()

Custom data massaging goes here.

Rarely used.

Review the steps:

Review the steps:• Define formatter

hook_field_formatter_info()

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)

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)

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)

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)

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:

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()

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