Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 41
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
ExternalIdentifierKeyValueFormatter
0.00% covered (danger)
0.00%
0 / 41
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 1
 viewElements
0.00% covered (danger)
0.00%
0 / 41
0.00% covered (danger)
0.00%
0 / 1
20
1<?php
2
3namespace Drupal\crm_field\Plugin\Field\FieldFormatter;
4
5use Drupal\Core\Field\FieldItemListInterface;
6use Drupal\Core\Field\FormatterBase;
7
8/**
9 * Plugin implementation of the 'crm_external_identifier_key_value' formatter.
10 *
11 * @FieldFormatter(
12 *   id = "crm_external_identifier_key_value",
13 *   label = @Translation("Key-value"),
14 *   field_types = {"crm_external_identifier"}
15 * )
16 */
17class ExternalIdentifierKeyValueFormatter extends FormatterBase {
18
19  /**
20   * {@inheritdoc}
21   */
22  public function viewElements(FieldItemListInterface $items, $langcode) {
23
24    $element = [];
25
26    foreach ($items as $delta => $item) {
27
28      $table = [
29        '#type' => 'table',
30      ];
31
32      // Source.
33      if ($item->source) {
34        $table['#rows'][] = [
35          'data' => [
36            [
37              'header' => TRUE,
38              'data' => [
39                '#markup' => $this->t('Source'),
40              ],
41            ],
42            [
43              'data' => [
44                '#markup' => $item->source,
45              ],
46            ],
47          ],
48          'no_striping' => TRUE,
49        ];
50      }
51
52      // Identifier.
53      if ($item->identifier) {
54        $table['#rows'][] = [
55          'data' => [
56            [
57              'header' => TRUE,
58              'data' => [
59                '#markup' => $this->t('Identifier'),
60              ],
61            ],
62            [
63              'data' => [
64                '#markup' => $item->identifier,
65              ],
66            ],
67          ],
68          'no_striping' => TRUE,
69        ];
70      }
71
72      $element[$delta] = $table;
73
74    }
75
76    return $element;
77  }
78
79}