'select', '#options' => $this->getOptions($items->getEntity()), '#default_value' => $this->getSelectedOptions($items), // Do not display a 'multiple' select box if there is only one option. '#multiple' => $this->multiple && count($this->options) > 1, ]; return $element; } /** * {@inheritdoc} */ protected function sanitizeLabel(&$label) { // Select form inputs allow unencoded HTML entities, but no HTML tags. $label = Html::decodeEntities(strip_tags($label)); } /** * {@inheritdoc} */ protected function supportsGroups() { return TRUE; } /** * {@inheritdoc} */ protected function getEmptyLabel() { if ($this->multiple) { // Multiple select: add a 'none' option for non-required fields. if (!$this->required) { return t('- None -'); } } else { // Single select: add a 'none' option for non-required fields, // and a 'select a value' option for required fields that do not come // with a value selected. if (!$this->required) { return t('- None -'); } if (!$this->has_value) { return t('- Select a value -'); } } } }