Field/CCK Formatters “God has given you one face, and you make yourself another.” - Fortune cookie in my desk drawer Helior Colorado [email protected]
Field/CCK Formatters“God has given you one face, and you make yourself another.” - Fortune cookie in my desk drawer
Helior [email protected]
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