field_formatter_class.module in Field Formatter Class 7
Same filename and directory in other branches
Provide for custom classes on field formatters in the display.
File
field_formatter_class.moduleView source
<?php
/**
* @file
* Provide for custom classes on field formatters in the display.
*/
/**
* Implements hook_field_formatter_info_alter().
*/
function field_formatter_class_field_formatter_info_alter(&$info) {
// Added to ALL formatters.
foreach ($info as &$formatter) {
$formatter['settings']['field_formatter_class'] = '';
}
}
/**
* Implements hook_field_formatter_settings_summary_alter().
*/
function field_formatter_class_field_formatter_settings_summary_alter(&$summary, $context) {
$display = $context['instance']['display'][$context['view_mode']];
$settings = $display['settings'];
if (!empty($summary)) {
$summary .= '<br />';
}
if (!empty($settings['field_formatter_class'])) {
$summary .= t('Class: @field', array(
'@field' => filter_xss($settings['field_formatter_class'], array()),
));
}
else {
$summary .= t('No class');
}
}
/**
* Implements hook_field_formatter_settings_form_alter().
*/
function field_formatter_class_field_formatter_settings_form_alter(&$settings_form, $context) {
$display = $context['instance']['display'][$context['view_mode']];
$settings = $display['settings'];
$settings_form['field_formatter_class'] = array(
'#type' => 'textfield',
'#title' => t('Field Formatter Class'),
'#default_value' => $settings['field_formatter_class'],
);
if (module_exists('token')) {
$settings_form['field_formatter_class_token'] = array(
'#type' => 'container',
'#theme' => 'token_tree',
'#token_types' => array(
$context['instance']['entity_type'],
),
'#dialog' => TRUE,
);
}
}
/**
* Implements hook_preprocess_field().
*
* Adds a custom field class to the field's classes_array
* according to the field formatter settings.
*/
function field_formatter_class_preprocess_field(&$variables, $hook) {
$entity_type = !empty($variables['element']['#entity_type']) ? $variables['element']['#entity_type'] : '';
$field_name = !empty($variables['element']['#field_name']) ? $variables['element']['#field_name'] : '';
$bundle = !empty($variables['element']['#bundle']) ? $variables['element']['#bundle'] : '';
$view_mode = !empty($variables['element']['#view_mode']) ? $variables['element']['#view_mode'] : '';
if (isset($variables['element']['#object'])) {
$object = $variables['element']['#object'];
}
$formatter_info = field_formatter_settings_get_instance_display_settings($entity_type, $field_name, $bundle, $view_mode);
// Add class for whole field.
if (!empty($formatter_info['field_formatter_class'])) {
$class = $formatter_info['field_formatter_class'];
if (module_exists('token')) {
$class = token_replace($class, array(
$entity_type => $object,
));
}
$class = filter_xss($class, array());
$variables['classes_array'][] = $class;
}
}
Functions
Name![]() |
Description |
---|---|
field_formatter_class_field_formatter_info_alter | Implements hook_field_formatter_info_alter(). |
field_formatter_class_field_formatter_settings_form_alter | Implements hook_field_formatter_settings_form_alter(). |
field_formatter_class_field_formatter_settings_summary_alter | Implements hook_field_formatter_settings_summary_alter(). |
field_formatter_class_preprocess_field | Implements hook_preprocess_field(). |