Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 17 |
OptionsDefaultFormatter | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
20 | |
0.00% |
0 / 17 |
viewElements | |
0.00% |
0 / 1 |
20 | |
0.00% |
0 / 17 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\options\Plugin\Field\FieldFormatter\OptionsDefaultFormatter. | |
*/ | |
namespace Drupal\options\Plugin\Field\FieldFormatter; | |
use Drupal\Core\Field\AllowedTagsXssTrait; | |
use Drupal\Core\Field\FieldFilteredMarkup; | |
use Drupal\Core\Field\FormatterBase; | |
use Drupal\Core\Field\FieldItemListInterface; | |
use Drupal\Core\Form\OptGroup; | |
/** | |
* Plugin implementation of the 'list_default' formatter. | |
* | |
* @FieldFormatter( | |
* id = "list_default", | |
* label = @Translation("Default"), | |
* field_types = { | |
* "list_integer", | |
* "list_float", | |
* "list_string", | |
* } | |
* ) | |
*/ | |
class OptionsDefaultFormatter extends FormatterBase { | |
use AllowedTagsXssTrait; | |
/** | |
* {@inheritdoc} | |
*/ | |
public function viewElements(FieldItemListInterface $items, $langcode) { | |
$elements = array(); | |
// Only collect allowed options if there are actually items to display. | |
if ($items->count()) { | |
$provider = $items->getFieldDefinition() | |
->getFieldStorageDefinition() | |
->getOptionsProvider('value', $items->getEntity()); | |
// Flatten the possible options, to support opt groups. | |
$options = OptGroup::flattenOptions($provider->getPossibleOptions()); | |
foreach ($items as $delta => $item) { | |
$value = $item->value; | |
// If the stored value is in the current set of allowed values, display | |
// the associated label, otherwise just display the raw value. | |
$output = isset($options[$value]) ? $options[$value] : $value; | |
$elements[$delta] = array( | |
'#markup' => $output, | |
'#allowed_tags' => FieldFilteredMarkup::allowedTags(), | |
); | |
} | |
} | |
return $elements; | |
} | |
} |