Version 1
[yaffs-website] / web / core / modules / field / tests / modules / field_test / src / Plugin / Field / FieldFormatter / TestFieldEmptySettingFormatter.php
1 <?php
2
3 namespace Drupal\field_test\Plugin\Field\FieldFormatter;
4
5 use Drupal\Core\Field\FormatterBase;
6 use Drupal\Core\Field\FieldItemListInterface;
7 use Drupal\Core\Form\FormStateInterface;
8
9 /**
10  * Plugin implementation of the 'field_empty_setting' formatter.
11  *
12  * @FieldFormatter(
13  *   id = "field_empty_setting",
14  *   label = @Translation("Field empty setting"),
15  *   field_types = {
16  *     "test_field",
17  *   },
18  *   weight = -1
19  * )
20  */
21 class TestFieldEmptySettingFormatter extends FormatterBase {
22
23   /**
24    * {@inheritdoc}
25    */
26   public static function defaultSettings() {
27     return [
28       'field_empty_setting' => '',
29     ] + parent::defaultSettings();
30   }
31
32   /**
33    * {@inheritdoc}
34    */
35   public function settingsForm(array $form, FormStateInterface $form_state) {
36     $element['field_empty_setting'] = [
37       '#title' => t('Setting'),
38       '#type' => 'textfield',
39       '#size' => 20,
40       '#default_value' => $this->getSetting('field_empty_setting'),
41       '#required' => TRUE,
42     ];
43     return $element;
44   }
45
46   /**
47    * {@inheritdoc}
48    */
49   public function settingsSummary() {
50     $summary = [];
51     $setting = $this->getSetting('field_empty_setting');
52     if (!empty($setting)) {
53       $summary[] = t('Default empty setting now has a value.');
54     }
55     return $summary;
56   }
57
58   /**
59    * {@inheritdoc}
60    */
61   public function viewElements(FieldItemListInterface $items, $langcode) {
62     $elements = [];
63
64     if (!empty($items)) {
65       foreach ($items as $delta => $item) {
66         $elements[$delta] = ['#markup' => $this->getSetting('field_empty_setting')];
67       }
68     }
69
70     return $elements;
71   }
72
73 }