public function EntityBrowserEditForm::form in Entity Browser 8
Same name and namespace in other branches
- 8.2 src/Form/EntityBrowserEditForm.php \Drupal\entity_browser\Form\EntityBrowserEditForm::form()
Gets the actual form array to be built.
Overrides EntityForm::form
See also
\Drupal\Core\Entity\EntityForm::processForm()
\Drupal\Core\Entity\EntityForm::afterBuild()
File
- src/
Form/ EntityBrowserEditForm.php, line 86
Class
- EntityBrowserEditForm
- Class EntityBrowserEditForm.
Namespace
Drupal\entity_browser\FormCode
public function form(array $form, FormStateInterface $form_state) {
$form = parent::form($form, $form_state);
/** @var \Drupal\entity_browser\Entity\EntityBrowser $entity_browser */
$entity_browser = $this->entity;
$form['label'] = [
'#type' => 'textfield',
'#title' => $this
->t('Label'),
'#maxlength' => 255,
'#default_value' => $entity_browser
->label(),
'#description' => $this
->t("Label for the Entity Browser."),
'#required' => TRUE,
];
$form['name'] = [
'#type' => 'machine_name',
'#default_value' => $entity_browser
->id(),
'#machine_name' => [
'exists' => '\\Drupal\\entity_browser\\Entity\\EntityBrowser::load',
],
'#disabled' => !$entity_browser
->isNew(),
];
if ($entity_browser
->isNew()) {
$help_text = '<div class="clearfix eb-help-text"><h2>' . $this
->t('Entity Browser creation instructions') . '</h2>';
$help_text .= '<p>' . $this
->t('When you save this form, you will be taken to another form to configure widgets for the entity browser.') . '</p>';
$help_text .= '<p>' . $this
->t('You can find more detailed information about creating and configuring Entity Browsers at the <a href="@guide_href" target="_blank">official documentation</a>.', [
'@guide_href' => 'https://drupal-media.gitbooks.io/drupal8-guide/content/modules/entity_browser/intro.html',
]) . '</p>';
$help_text .= '</div>';
$form['help_text'] = [
'#markup' => $help_text,
];
}
$form['display_wrapper'] = [
'#type' => 'fieldset',
'#title' => $this
->t('Display'),
];
$form['display_wrapper']['description'] = $this
->getPluginDescription('display');
// Default if not set.
if (empty($entity_browser->display)) {
$entity_browser
->setDisplay('modal');
}
$display_plugin = $entity_browser
->getDisplay();
$form['display_wrapper']['display'] = [
'#type' => 'select',
'#title' => $this
->t('Display plugin'),
'#default_value' => $display_plugin
->getPluginId(),
'#options' => $this
->getPluginOptions('display'),
'#required' => TRUE,
'#ajax' => [
'callback' => [
get_class($this),
'displayPluginAjaxCallback',
],
'wrapper' => 'display-config-ajax-wrapper',
'event' => 'change',
],
'#executes_submit_callback' => TRUE,
'#submit' => [
[
get_class($this),
'submitUpdateDisplayPluginSettings',
],
],
'#limit_validation_errors' => [
[
'display',
],
],
];
$form['display_wrapper']['display_configuration'] = [
'#type' => 'details',
'#title' => $this
->t('Display Plugin settings'),
'#open' => FALSE,
'#prefix' => '<div id="display-config-ajax-wrapper">',
'#suffix' => '</div>',
'#tree' => TRUE,
];
if ($display_config_form = $display_plugin
->buildConfigurationForm([], $form_state)) {
$form['display_wrapper']['display_configuration'] = array_merge($form['display_wrapper']['display_configuration'], $display_config_form);
}
else {
$form['display_wrapper']['display_configuration']['no_options'] = [
'#prefix' => '<p>',
'#suffix' => '</p>',
'#markup' => $this
->t('This plugin has no configuration options.'),
];
}
$form['widget_selector_wrapper'] = [
'#type' => 'fieldset',
'#title' => $this
->t('Widget Selector'),
];
$form['widget_selector_wrapper']['description'] = $this
->getPluginDescription('widget_selector');
// Set default if empty.
if (empty($entity_browser->widget_selector)) {
$entity_browser
->setWidgetSelector('tabs');
}
$widget_selector_plugin = $entity_browser
->getWidgetSelector();
$form['widget_selector_wrapper']['widget_selector'] = [
'#type' => 'select',
'#title' => $this
->t('Widget selector plugin'),
'#default_value' => $widget_selector_plugin
->getPluginId(),
'#options' => $this
->getPluginOptions('widget_selector'),
'#required' => TRUE,
'#ajax' => [
'callback' => [
get_class($this),
'widgetSelectorAjaxCallback',
],
'wrapper' => 'widget-selector-config-ajax-wrapper',
'event' => 'change',
],
'#executes_submit_callback' => TRUE,
'#submit' => [
[
get_class($this),
'submitUpdateWidgetSelector',
],
],
'#limit_validation_errors' => [
[
'widget_selector',
],
],
];
$form['widget_selector_wrapper']['widget_selector_configuration'] = [
'#type' => 'details',
'#title' => $this
->t('Widget Selector Plugin settings'),
'#open' => FALSE,
'#prefix' => '<div id="widget-selector-config-ajax-wrapper">',
'#suffix' => '</div>',
'#tree' => TRUE,
];
if ($widget_selector_config_form = $widget_selector_plugin
->buildConfigurationForm([], $form_state)) {
$form['widget_selector_wrapper']['widget_selector_configuration'] = array_merge($form['widget_selector_wrapper']['widget_selector_configuration'], $widget_selector_config_form);
}
else {
$form['widget_selector_wrapper']['widget_selector_configuration']['no_options'] = [
'#prefix' => '<p>',
'#suffix' => '</p>',
'#markup' => $this
->t('This plugin has no configuration options.'),
];
}
$form['selection_display_wrapper'] = [
'#type' => 'fieldset',
'#title' => $this
->t('Selection Display'),
];
$form['selection_display_wrapper']['description'] = $this
->getPluginDescription('selection_display');
if (empty($entity_browser->selection_display)) {
$entity_browser
->setSelectionDisplay('no_display');
}
$selection_display = $entity_browser
->getSelectionDisplay();
$form['selection_display_wrapper']['selection_display'] = [
'#type' => 'select',
'#title' => $this
->t('Selection display plugin'),
'#default_value' => $selection_display
->getPluginId(),
'#options' => $this
->getPluginOptions('selection_display'),
'#required' => TRUE,
'#ajax' => [
'callback' => [
get_class($this),
'selectionDisplayAjaxCallback',
],
'wrapper' => 'selection-display-config-ajax-wrapper',
'event' => 'change',
],
'#executes_submit_callback' => TRUE,
'#submit' => [
[
get_class($this),
'submitUpdateSelectionDisplay',
],
],
'#limit_validation_errors' => [
[
'selection_display',
],
],
];
$form['selection_display_wrapper']['selection_display_configuration'] = [
'#type' => 'details',
'#title' => $this
->t('Selection Display Plugin settings'),
'#open' => FALSE,
'#prefix' => '<div id="selection-display-config-ajax-wrapper">',
'#suffix' => '</div>',
'#tree' => TRUE,
];
if ($selection_display_config_form = $selection_display
->buildConfigurationForm([], $form_state)) {
$form['selection_display_wrapper']['selection_display_configuration'] = array_merge($form['selection_display_wrapper']['selection_display_configuration'], $selection_display_config_form);
}
else {
$form['selection_display_wrapper']['selection_display_configuration']['no_options'] = [
'#prefix' => '<p>',
'#suffix' => '</p>',
'#markup' => $this
->t('This plugin has no configuration options.'),
];
}
return $form;
}