key_value_field-8.x-1.2/src/Plugin/Field/FieldType/KeyValueLongItem.php

src/Plugin/Field/FieldType/KeyValueLongItem.php
<?php

namespace Drupal\key_value_field\Plugin\Field\FieldType;

use Drupal\Core\Form\FormStateInterface;
use Drupal\text\Plugin\Field\FieldType\TextLongItem;

/**
 * Plugin implementation of the 'key_value' field type.
 *
 * @FieldType(
 *   id = "key_value_long",
 *   label = @Translation("Key / Value (long)"),
 *   description = @Translation("Key / value pairs where the latter one is allowed to contain formatted text."),
 *   category = "key_value",
 *   default_widget = "key_value_textarea",
 *   default_formatter = "key_value",
 *   column_groups = {
 *     "key" = {
 *       "label" = @Translation("Key"),
 *       "translatable" = TRUE,
 *     },
 *     "value" = {
 *       "label" = @Translation("Value"),
 *       "translatable" = TRUE,
 *     },
 *     "description" = {
 *       "label" = @Translation("Description"),
 *       "translatable" = TRUE,
 *     },
 *   },
 * )
 */
class KeyValueLongItem extends TextLongItem {

  // Add overrides from the common trait.
  use KeyValueFieldTypeTrait;

  /**
   * {@inheritdoc}
   */
  public static function defaultFieldSettings() {
    return [
      'default_format' => '',
    ] + parent::defaultFieldSettings();
  }

  /**
   * {@inheritdoc}
   */
  public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
    $element = [];

    $options = filter_formats();
    array_walk($options, function (&$item) {
      $item = $item->label();
    });

    $element['default_format'] = [
      '#type' => 'select',
      '#title' => $this->t('Default text format.'),
      '#options' => $options,
      '#access' => count($options) > 1,
      '#default_value' => filter_default_format(),
      '#description' => $this->t('This set the default text format for new field items as long as the user has access to the default format. Default field settings override the default text format.'),
      '#attributes' => ['class' => ['filter-list']],
    ];

    return $element;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc