abstract class FormatterBase

Base class for 'Field formatter' plugin implementations.

Hierarchy

Expanded class hierarchy of FormatterBase

30 files declare their use of FormatterBase
DatetimeDefaultFormatter.php in drupal/core/modules/datetime/lib/Drupal/datetime/Plugin/field/formatter/DatetimeDefaultFormatter.php
Contains \Drupal\datetime\Plugin\field\formatter\DateTimeDefaultFormatter.
DatetimePlainFormatter.php in drupal/core/modules/datetime/lib/Drupal/datetime/Plugin/field/formatter/DatetimePlainFormatter.php
Contains \Drupal\datetime\Plugin\field\formatter\DateTimePlainFormatter.
DefaultNumberFormatter.php in drupal/core/modules/number/lib/Drupal/number/Plugin/field/formatter/DefaultNumberFormatter.php
Contains \Drupal\number\Plugin\field\formatter\DefaultNumberFormatter.
EntityReferenceFormatterBase.php in drupal/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/field/formatter/EntityReferenceFormatterBase.php
Contains \Drupal\entity_reference\Plugin\field\formatter\EntityReferenceFormatterBase.
GenericFileFormatter.php in drupal/core/modules/file/lib/Drupal/file/Plugin/field/formatter/GenericFileFormatter.php
Contains \Drupal\file\Plugin\field\formatter\GenericFileFormatter.

... See full list

File

drupal/core/modules/field/lib/Drupal/field/Plugin/Type/Formatter/FormatterBase.php, line 17
Definition of Drupal\field\Plugin\Type\Formatter\FormatterBase.

Namespace

Drupal\field\Plugin\Type\Formatter
View source
abstract class FormatterBase extends PluginSettingsBase implements FormatterInterface {

  /**
   * The field definition.
   *
   * @var array
   */
  protected $field;

  /**
   * The field instance definition.
   *
   * @var \Drupal\field\Plugin\Core\Entity\FieldInstance
   */
  protected $instance;

  /**
   * The formatter settings.
   *
   * @var array
   */
  protected $settings;

  /**
   * The label display setting.
   *
   * @var string
   */
  protected $label;

  /**
   * The view mode.
   *
   * @var string
   */
  protected $viewMode;

  /**
   * Constructs a FormatterBase object.
   *
   * @param string $plugin_id
   *   The plugin_id for the formatter.
   * @param array $plugin_definition
   *   The plugin implementation definition.
   * @param \Drupal\field\Plugin\Core\Entity\FieldInstance $instance
   *   The field instance to which the formatter is associated.
   * @param array $settings
   *   The formatter settings.
   * @param string $label
   *   The formatter label display setting.
   * @param string $view_mode
   *   The view mode.
   */
  public function __construct($plugin_id, array $plugin_definition, $instance, array $settings, $label, $view_mode) {
    parent::__construct(array(), $plugin_id, $plugin_definition);
    $this->instance = $instance;
    $this->field = field_info_field($instance['field_name']);
    $this->settings = $settings;
    $this->label = $label;
    $this->viewMode = $view_mode;
  }

  /**
   * {@inheritdoc}
   */
  public function view(EntityInterface $entity, $langcode, array $items) {
    $field = $this->field;
    $instance = $this->instance;
    $addition = array();
    $elements = $this
      ->viewElements($entity, $langcode, $items);
    if ($elements) {
      $entity_type = $entity
        ->entityType();
      $info = array(
        '#theme' => 'field',
        '#title' => $instance['label'],
        '#access' => field_access('view', $field, $entity
          ->entityType(), $entity),
        '#label_display' => $this->label,
        '#view_mode' => $this->viewMode,
        '#language' => $langcode,
        '#field_name' => $field['field_name'],
        '#field_type' => $field['type'],
        '#field_translatable' => $field['translatable'],
        '#entity_type' => $entity_type,
        '#bundle' => $entity
          ->bundle(),
        '#object' => $entity,
        '#items' => $items,
        '#formatter' => $this
          ->getPluginId(),
      );
      $addition[$field['field_name']] = array_merge($info, $elements);
    }
    return $addition;
  }

  /**
   * {@inheritdoc}
   */
  public function settingsForm(array $form, array &$form_state) {
    return array();
  }

  /**
   * {@inheritdoc}
   */
  public function settingsSummary() {
    return array();
  }

  /**
   * {@inheritdoc}
   */
  public function prepareView(array $entities, $langcode, array &$items) {
  }

}

Members

Namesort descending Modifiers Type Description Overrides
FormatterBase::$field protected property The field definition.
FormatterBase::$instance protected property The field instance definition.
FormatterBase::$label protected property The label display setting.
FormatterBase::$settings protected property The formatter settings. Overrides PluginSettingsBase::$settings
FormatterBase::$viewMode protected property The view mode.
FormatterBase::prepareView public function Allows formatters to load information for field values being displayed. Overrides FormatterInterface::prepareView 6
FormatterBase::settingsForm public function Returns a form to configure settings for the formatter. Overrides FormatterInterface::settingsForm 12
FormatterBase::settingsSummary public function Returns a short summary for the current formatter settings. Overrides FormatterInterface::settingsSummary 12
FormatterBase::view public function Builds a renderable array for one field on one entity instance. Overrides FormatterInterface::view
FormatterBase::__construct public function Constructs a FormatterBase object. Overrides PluginBase::__construct
FormatterInterface::viewElements public function Builds a renderable array for a field value. 26
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition.
PluginBase::$pluginId protected property The plugin_id.
PluginBase::getPluginDefinition public function Returns the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition
PluginBase::getPluginId public function Returns the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginSettingsBase::$defaultSettingsMerged protected property Whether default settings have been merged into the current $settings.
PluginSettingsBase::getDefaultSettings public function Implements Drupal\field\Plugin\PluginSettingsInterface::getDefaultSettings(). Overrides PluginSettingsInterface::getDefaultSettings
PluginSettingsBase::getSetting public function Implements Drupal\field\Plugin\PluginSettingsInterface::getSetting(). Overrides PluginSettingsInterface::getSetting
PluginSettingsBase::getSettings public function Implements Drupal\field\Plugin\PluginSettingsInterface::getSettings(). Overrides PluginSettingsInterface::getSettings
PluginSettingsBase::mergeDefaults protected function Merges default settings values into $settings.
PluginSettingsBase::setSetting public function Implements Drupal\field\Plugin\PluginSettingsInterface::setSetting(). Overrides PluginSettingsInterface::setSetting
PluginSettingsBase::setSettings public function Implements Drupal\field\Plugin\PluginSettingsInterface::setSettings(). Overrides PluginSettingsInterface::setSettings