Download - Field formatters
![Page 1: Field formatters](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/2.jpg)
What are Field Formatters?
![Page 3: Field formatters](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/3.jpg)
What are Field Formatters?•Means to present field data in a
displaying entity
![Page 4: Field formatters](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/4.jpg)
What are Field Formatters?•Means to present field data in a
displaying entity• Is pluggable
![Page 5: Field formatters](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/5.jpg)
What are Field Formatters?•Means to present field data in a
displaying entity• Is pluggable•Provides a layer of configurability
![Page 6: Field formatters](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/8.jpg)
Defining a Field Formatter:hook_field_formatter_info()
label
description
field types
multiple values
settings
![Page 9: Field formatters](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/9.jpg)
Rendering a Field Formatter:
hook_field_formatter_view()
Return an array or renderable arrays – “N is the only number”
![Page 10: Field formatters](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/11.jpg)
Displaying configuration summary:hook_field_formatter_settings_summary()
Output a string of whatever you think is meaningful.
![Page 12: Field formatters](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/12.jpg)
Pre-build formatter processing:hook_field_prepare_view()
Custom data massaging goes here.
Rarely used.
![Page 13: Field formatters](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/13.jpg)
Review the steps:
![Page 14: Field formatters](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/14.jpg)
Review the steps:• Define formatter
hook_field_formatter_info()
![Page 15: Field formatters](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062702/554bde37b4c905ac708b55fe/html5/thumbnails/21.jpg)
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