コード例 #1
0
 /**
  * {@inheritdoc}
  */
 public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state)
 {
     $element = parent::formElement($items, $delta, $element, $form, $form_state);
     // Prepare some properties for the child methods to build the actual form element.
     $this->required = $element['#required'];
     $multiple = $this->fieldDefinition->getFieldStorageDefinition()->isMultiple();
     $this->has_value = isset($items[0]->{$this->column});
     $options = [];
     $item = $items->get($delta);
     if (!empty($item)) {
         $options = $this->getOptions($item);
         $selected = $this->getSelectedOptions($items);
     }
     $element += array('#type' => 'multiselect', '#size' => $this->getSetting('size'), '#options' => $options, '#multiple' => $multiple, '#key_column' => $this->column, '#default_value' => $selected);
     return $element;
 }
コード例 #2
0
 /**
  * {@inheritdoc}
  */
 public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state)
 {
     $element = parent::formElement($items, $delta, $element, $form, $form_state);
     $options = $this->getOptions($items->getEntity());
     $selected = $this->getSelectedOptions($items);
     // If required and there is one single option, preselect it.
     if ($this->required && count($options) == 1) {
         reset($options);
         $selected = array(key($options));
     }
     if ($this->multiple) {
         $element += array('#type' => 'checkboxes', '#default_value' => $selected, '#options' => $options);
     } else {
         $element += array('#type' => 'radios', '#default_value' => $selected ? reset($selected) : NULL, '#options' => $options);
     }
     return $element;
 }
コード例 #3
0
 /**
  * {@inheritdoc}
  */
 public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state)
 {
     $element = parent::formElement($items, $delta, $element, $form, $form_state);
     $element += array('#type' => 'select', '#options' => $this->getOptions($items->getEntity()), '#default_value' => $this->getSelectedOptions($items), '#multiple' => $this->multiple && count($this->options) > 1);
     return $element;
 }