entity_browser-8.x-2.x-dev/tests/modules/entity_browser_test/src/Plugin/EntityBrowser/Widget/MultipleSubmitTestWidget.php

tests/modules/entity_browser_test/src/Plugin/EntityBrowser/Widget/MultipleSubmitTestWidget.php
<?php

namespace Drupal\entity_browser_test\Plugin\EntityBrowser\Widget;

use Drupal\Core\Form\FormStateInterface;
use Drupal\entity_browser\WidgetBase;

/**
 * Test widget with multiple submit buttons for test purposes.
 *
 * @EntityBrowserWidget(
 *   id = "multiple_submit_test_widget",
 *   label = @Translation("Multiple submit test widget"),
 *   description = @Translation("Test widget with multiple submit buttons only for testing purposes."),
 *   auto_select = FALSE
 * )
 */
class MultipleSubmitTestWidget extends WidgetBase {

  /**
   * Entity to be returned.
   *
   * @var \Drupal\Core\Entity\EntityInterface
   */
  public $entity;

  /**
   * {@inheritdoc}
   */
  public function getForm(array &$original_form, FormStateInterface $form_state, array $additional_widget_parameters) {
    $form = parent::getForm($original_form, $form_state, $additional_widget_parameters);

    $form['submit_second'] = [
      '#type' => 'submit',
      '#value' => $this->t('Second submit button'),
    ];
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  protected function prepareEntities(array $form, FormStateInterface $form_state) {
    return $form_state->getValue('dummy_entities', []);
  }

  /**
   * {@inheritdoc}
   */
  public function submit(array &$element, array &$form, FormStateInterface $form_state) {
    if ($this->entity) {
      $this->selectEntities([$this->entity], $form_state);
    }
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc