Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 4 |
CRAP | |
0.00% |
0 / 26 |
| StringListField | |
0.00% |
0 / 1 |
|
0.00% |
0 / 4 |
42 | |
0.00% |
0 / 26 |
| init | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 4 |
|||
| defineOptions | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 4 |
|||
| buildOptionsForm | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 12 |
|||
| summaryName | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 6 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\options\Plugin\views\argument\StringListField. | |
| */ | |
| namespace Drupal\options\Plugin\views\argument; | |
| use Drupal\Core\Field\AllowedTagsXssTrait; | |
| use Drupal\Core\Field\FieldFilteredMarkup; | |
| use Drupal\Core\Form\FormStateInterface; | |
| use Drupal\views\FieldAPIHandlerTrait; | |
| use Drupal\views\ViewExecutable; | |
| use Drupal\views\Plugin\views\display\DisplayPluginBase; | |
| use Drupal\views\Plugin\views\argument\StringArgument; | |
| /** | |
| * Argument handler for list field to show the human readable name in summary. | |
| * | |
| * @ingroup views_argument_handlers | |
| * | |
| * @ViewsArgument("string_list_field") | |
| */ | |
| class StringListField extends StringArgument { | |
| use AllowedTagsXssTrait; | |
| use FieldAPIHandlerTrait; | |
| /** | |
| * Stores the allowed values of this field. | |
| * | |
| * @var array | |
| */ | |
| protected $allowedValues = NULL; | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function init(ViewExecutable $view, DisplayPluginBase $display, array &$options = NULL) { | |
| parent::init($view, $display, $options); | |
| $field_storage = $this->getFieldStorageDefinition(); | |
| $this->allowedValues = options_allowed_values($field_storage); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| protected function defineOptions() { | |
| $options = parent::defineOptions(); | |
| $options['summary']['contains']['human'] = ['default' => FALSE]; | |
| return $options; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function buildOptionsForm(&$form, FormStateInterface $form_state) { | |
| parent::buildOptionsForm($form, $form_state); | |
| $form['summary']['human'] = [ | |
| '#title' => $this->t('Display list value as human readable'), | |
| '#type' => 'checkbox', | |
| '#default_value' => $this->options['summary']['human'], | |
| '#states' => [ | |
| 'visible' => [ | |
| ':input[name="options[default_action]"]' => ['value' => 'summary'], | |
| ], | |
| ], | |
| ]; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function summaryName($data) { | |
| $value = $data->{$this->name_alias}; | |
| // If the list element has a human readable name show it. | |
| if (isset($this->allowedValues[$value]) && !empty($this->options['summary']['human'])) { | |
| $value = $this->allowedValues[$value]; | |
| } | |
| return FieldFilteredMarkup::create($this->caseTransform($value, $this->options['case'])); | |
| } | |
| } |