Mercurial > hg > isophonics-drupal-site
diff core/modules/field_ui/field_ui.api.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | af1871eacc83 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/field_ui/field_ui.api.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,127 @@ +<?php + +/** + * @file + * Hooks provided by the Field UI module. + */ + +/** + * @addtogroup field_types + * @{ + */ + +/** + * Allow modules to add settings to field formatters provided by other modules. + * + * @param \Drupal\Core\Field\FormatterInterface $plugin + * The instantiated field formatter plugin. + * @param \Drupal\Core\Field\FieldDefinitionInterface $field_definition + * The field definition. + * @param $view_mode + * The entity view mode. + * @param array $form + * The (entire) configuration form array. + * @param \Drupal\Core\Form\FormStateInterface $form_state + * The form state. + * + * @return array + * Returns the form array to be built. + * + * @see \Drupal\field_ui\DisplayOverView + */ +function hook_field_formatter_third_party_settings_form(\Drupal\Core\Field\FormatterInterface $plugin, \Drupal\Core\Field\FieldDefinitionInterface $field_definition, $view_mode, $form, \Drupal\Core\Form\FormStateInterface $form_state) { + $element = []; + // Add a 'my_setting' checkbox to the settings form for 'foo_formatter' field + // formatters. + if ($plugin->getPluginId() == 'foo_formatter') { + $element['my_setting'] = [ + '#type' => 'checkbox', + '#title' => t('My setting'), + '#default_value' => $plugin->getThirdPartySetting('my_module', 'my_setting'), + ]; + } + return $element; +} + +/** + * Allow modules to add settings to field widgets provided by other modules. + * + * @param \Drupal\Core\Field\WidgetInterface $plugin + * The instantiated field widget plugin. + * @param \Drupal\Core\Field\FieldDefinitionInterface $field_definition + * The field definition. + * @param $form_mode + * The entity form mode. + * @param array $form + * The (entire) configuration form array. + * @param \Drupal\Core\Form\FormStateInterface $form_state + * The form state. + * + * @return array + * Returns the form array to be built. + * + * @see \Drupal\field_ui\FormDisplayOverView + */ +function hook_field_widget_third_party_settings_form(\Drupal\Core\Field\WidgetInterface $plugin, \Drupal\Core\Field\FieldDefinitionInterface $field_definition, $form_mode, $form, \Drupal\Core\Form\FormStateInterface $form_state) { + $element = []; + // Add a 'my_setting' checkbox to the settings form for 'foo_widget' field + // widgets. + if ($plugin->getPluginId() == 'foo_widget') { + $element['my_setting'] = [ + '#type' => 'checkbox', + '#title' => t('My setting'), + '#default_value' => $plugin->getThirdPartySetting('my_module', 'my_setting'), + ]; + } + return $element; +} + +/** + * Alters the field formatter settings summary. + * + * @param array $summary + * An array of summary messages. + * @param $context + * An associative array with the following elements: + * - formatter: The formatter object. + * - field_definition: The field definition. + * - view_mode: The view mode being configured. + * + * @see \Drupal\field_ui\DisplayOverView + */ +function hook_field_formatter_settings_summary_alter(&$summary, $context) { + // Append a message to the summary when an instance of foo_formatter has + // mysetting set to TRUE for the current view mode. + if ($context['formatter']->getPluginId() == 'foo_formatter') { + if ($context['formatter']->getThirdPartySetting('my_module', 'my_setting')) { + $summary[] = t('My setting enabled.'); + } + } +} + +/** + * Alters the field widget settings summary. + * + * @param array $summary + * An array of summary messages. + * @param array $context + * An associative array with the following elements: + * - widget: The widget object. + * - field_definition: The field definition. + * - form_mode: The form mode being configured. + * + * @see \Drupal\field_ui\FormDisplayOverView + */ +function hook_field_widget_settings_summary_alter(&$summary, $context) { + // Append a message to the summary when an instance of foo_widget has + // mysetting set to TRUE for the current view mode. + if ($context['widget']->getPluginId() == 'foo_widget') { + if ($context['widget']->getThirdPartySetting('my_module', 'my_setting')) { + $summary[] = t('My setting enabled.'); + } + } +} + +/** + * @} End of "addtogroup field_types". + */