entity_browser-8.x-2.x-dev/src/Plugin/EntityBrowser/Display/Standalone.php
src/Plugin/EntityBrowser/Display/Standalone.php
<?php namespace Drupal\entity_browser\Plugin\EntityBrowser\Display; use Drupal\entity_browser\DisplayBase; use Drupal\entity_browser\DisplayRouterInterface; use Drupal\Core\Form\FormStateInterface; /** * Presents entity browser as a standalone form. * * @EntityBrowserDisplay( * id = "standalone", * label = @Translation("Standalone form"), * description = @Translation("Displays the entity browser as a standalone form. Only intended for testing or very specific use cases."), * uses_route = TRUE * ) */ class Standalone extends DisplayBase implements DisplayRouterInterface { /** * {@inheritdoc} */ public function buildConfigurationForm(array $form, FormStateInterface $form_state) { $form['path'] = [ '#type' => 'textfield', '#title' => $this->t('Path'), '#required' => TRUE, '#description' => $this->t('The path at which the browser will be accessible. Must begin with a forward slash.'), '#default_value' => $this->configuration['path'], ]; return $form; } /** * {@inheritdoc} */ public function defaultConfiguration() { return [ 'path' => '', ]; } /** * {@inheritdoc} */ public function displayEntityBrowser(array $element, FormStateInterface $form_state, array &$complete_form, array $persistent_data = []) { parent::displayEntityBrowser($element, $form_state, $complete_form, $persistent_data); // @TODO Implement it. } /** * {@inheritdoc} */ public function selectionCompleted(array $entities) { // @TODO Implement it. } /** * {@inheritdoc} */ public function path() { return $this->configuration['path']; } /** * {@inheritdoc} */ public function validateConfigurationForm(array &$form, FormStateInterface $form_state) { $path = $form_state->getValue('path'); if ($path[0] != '/') { $form_state->setError($form['path'], $this->t('The Path field must begin with a forward slash.')); } } }