class TripalFieldFormatter
Hierarchy
- class \TripalFieldFormatter
Expanded class hierarchy of TripalFieldFormatter
2 string references to 'TripalFieldFormatter'
- TripalFieldFormatter::info in tripal/
includes/ TripalFields/ TripalFieldFormatter.inc - Provides information about the formatter for this field.
- tripal_get_field_formatters in tripal/
api/ tripal.fields.api.inc - Retrieves a list of TripalFieldFormatters.
File
- tripal/
includes/ TripalFields/ TripalFieldFormatter.inc, line 3
View source
class TripalFieldFormatter {
/**
* The default lable for this field.
*/
public static $default_label = 'Tripal Field.';
/**
* The list of field types for which this formatter is appropriate.
*/
public static $field_types = array();
/**
* The list of default settings for this formatter.
*/
public static $default_settings = array();
/**
* Instantiates a new TripalFieldFormatter object.
*
* @param $field
* An array containing the field data as returned by field_info_field()
* @param $instance
* (Optional). Set the instance of this field when one is available. This
* is necessary when working with instance specific functions such as the
* formatterSettingsForm, widgetForm, etc.
*/
public function __construct($field, $instance = NULL) {
$this->field = $field;
$this->instance = $instance;
}
/**
* Provides information about the formatter for this field.
*
* This function corresponds to the hook_field_formatter_info() function of
* the Drupal Field API.
*
* This is a static function as it provides default values for all of the
* formatters for this field type, and thus we don't need an instantiated
* object to provide this information.
*
* @return
* An associative array with key/value paris compatible with those from the
* hook_field_formatter_info() function of the Drupal Field API.
*
*/
public static function info() {
$class = get_called_class();
return array(
'label' => $class::$default_label,
'field types' => $class::$field_types,
'settings' => $class::$default_settings,
'TripalFieldFormatter' => TRUE,
);
}
/**
* Provides the field's setting form.
*
* This function corresponds to the hook_field_formatter_settings_form()
* function of the Drupal Field API.
*
* The settings form appears on the 'Manage Display' page of the content
* type administration page. This function provides the form that will
* appear on that page.
*
* To add a validate function, please create a static function in the
* implementing class, and indicate that this function should be used
* in the form array that is returned by this function.
*
* This form will not be displayed if the formatter_settings_summary()
* function does not return anything.
*
* param $field
* The field structure being configured.
* param $instance
* The instance structure being configured.
* param $view_mode
* The view mode being configured.
* param $form
* The (entire) configuration form array, which will usually have no use
* here. Typically for reference only.
* param $form_state
* The form state of the (entire) configuration form.
*
* @return
* A Drupal Form array containing the settings form for this field.
*/
public function settingsForm($view_mode, $form, &$form_state) {
}
/**
* Provides the display for a field
*
* This function corresponds to the hook_field_formatter_view()
* function of the Drupal Field API.
*
* This function provides the display for a field when it is viewed on
* as a full page, teaser, indexing for searching, etc. The content
* returned by the formatter should only include what is present in the
* $items[$delta]['values] array. This way, the contents that are displayed
* on the page, via web services and downloaded into a CSV file will
* always be identical. The view need not show all of the data in the
* 'values' array.
*
* @param $element
* A renderable array for the $items, as an array of child elements keyed
* by numeric indexes starting from 0. When implemented as a child
* class, this argument is set for the display.
* @param $entity_type
* The type of $entity.
* @param $entity
* The entity object.
* @param $langcode
* The language associated with $items.
* @param $items
* Array of values for this field.
* @param $display
* The display settings to use, as found in the 'display' entry of instance
* definitions. The array notably contains the following keys and values;
* - type: The name of the formatter to use.
* - settings: The array of formatter settings.
*/
public function view(&$element, $entity_type, $entity, $langcode, $items, $display) {
foreach ($items as $delta => $item) {
$element[$delta] = array(
'#type' => 'markup',
'#markup' => $item['value'],
);
}
}
/**
* Provides a summary of the formatter settings.
*
* This function corresponds to the hook_field_formatter_settings_summary()
* function of the Drupal Field API.
*
* On the 'Manage Display' page of the content type administration page,
* fields are allowed to provide a settings form. This settings form can
* be used to allow the site admin to define how the field should be
* formatted. The settings are then available for the formatter()
* function of this class. This function provides a text-based description
* of the settings for the site developer to see. It appears on the manage
* display page inline with the field. A field must always return a
* value in this function if the settings form gear button is to appear.
*
* See the hook_field_formatter_settings_summary() function for more
* information.
*
* @param $field
* @param $instance
* @param $view_mode
*
* @return string
* A string that provides a very brief summary of the field settings
* to the user.
*
*/
public function settingsSummary($view_mode) {
}
/**
* When constructing a pager for use by a field, all pagers must have
* a unique ID
*/
protected function getPagerElementID() {
return $this->field['id'];
}
/**
* Updates a pager generated by theme('pager') for use with AJAX.
*
* Because fields are meant to be updated by AJAX we need clicks in the pager
* to not reload the entire page but rather to only reload the field.
* Therefore the links in the pager must be adjusted to support this.
*
* @param $pager
* The pager as created by theme('pager')
* @param $entity
* The entity object.
*/
protected function ajaxifyPager($pager, $entity) {
$field_id = 'tripal-entity-' . $entity->id . '--' . $this->field['field_name'];
$pager = preg_replace('/href="\/.+\?page=(.+?)"/', 'href="javascript:void(0)" onclick="tripal_navigate_field_pager(\'' . $field_id . '\', $1)"', $pager);
$pager = preg_replace('/href="\/.+"/', 'href="javascript:void(0)" onclick="tripal_navigate_field_pager(\'' . $field_id . '\', 0)"', $pager);
$pager = '<img src="/' . drupal_get_path('module', 'tripal') . '/theme/images/ajax-loader.gif" id="' . $field_id . '-spinner" class="tripal-field-ajax-spinner">' . $pager;
return $pager;
}
}
Members
Name | Modifiers | Type | Description |
---|---|---|---|
TripalFieldFormatter:: |
public static | property | The default lable for this field. |
TripalFieldFormatter:: |
public static | property | The list of default settings for this formatter. |
TripalFieldFormatter:: |
public static | property | The list of field types for which this formatter is appropriate. |
TripalFieldFormatter:: |
protected | function | Updates a pager generated by theme('pager') for use with AJAX. |
TripalFieldFormatter:: |
protected | function | When constructing a pager for use by a field, all pagers must have a unique ID |
TripalFieldFormatter:: |
public static | function | Provides information about the formatter for this field. |
TripalFieldFormatter:: |
public | function | Provides the field's setting form. |
TripalFieldFormatter:: |
public | function | Provides a summary of the formatter settings. |
TripalFieldFormatter:: |
public | function | Provides the display for a field |
TripalFieldFormatter:: |
public | function | Instantiates a new TripalFieldFormatter object. |