public ViewAddForm::form(array $form, FormStateInterface $form_state)
Gets the actual form array to be built.
Overrides EntityForm::form
See also
\Drupal\Core\Entity\EntityForm::processForm()
\Drupal\Core\Entity\EntityForm::afterBuild()
File
- core/modules/views_ui/src/ViewAddForm.php, line 52
Class
- ViewAddForm
- Form controller for the Views edit form.
Namespace
Drupal\views_ui
Code
public function form(array $form, FormStateInterface $form_state) { $form['#attached']['library'][] = 'views_ui/views_ui.admin'; $form['#attributes']['class'] = array('views-admin'); $form['name'] = array( '#type' => 'fieldset', '#title' => t('View basic information'), '#attributes' => array('class' => array('fieldset-no-legend')), ); $form['name']['label'] = array( '#type' => 'textfield', '#title' => $this->t('View name'), '#required' => TRUE, '#size' => 32, '#default_value' => '', '#maxlength' => 255, ); $form['name']['id'] = array( '#type' => 'machine_name', '#maxlength' => 128, '#machine_name' => array( 'exists' => '\Drupal\views\Views::getView', 'source' => array('name', 'label'), ), '#description' => $this->t('A unique machine-readable name for this View. It must only contain lowercase letters, numbers, and underscores.'), ); $form['name']['description_enable'] = array( '#type' => 'checkbox', '#title' => $this->t('Description'), ); $form['name']['description'] = array( '#type' => 'textfield', '#title' => $this->t('Provide description'), '#title_display' => 'invisible', '#size' => 64, '#default_value' => '', '#states' => array( 'visible' => array( ':input[name="description_enable"]' => array('checked' => TRUE), ), ), ); // Create a wrapper for the entire dynamic portion of the form. Everything // that can be updated by AJAX goes somewhere inside here. For example, this // is needed by "Show" dropdown (below); it changes the base table of the // view and therefore potentially requires all options on the form to be // dynamically updated. $form['displays'] = array(); // Create the part of the form that allows the user to select the basic // properties of what the view will display. $form['displays']['show'] = array( '#type' => 'fieldset', '#title' => t('View settings'), '#tree' => TRUE, '#attributes' => array('class' => array('container-inline')), ); // Create the "Show" dropdown, which allows the base table of the view to be // selected. $wizard_plugins = $this->wizardManager->getDefinitions(); $options = array(); foreach ($wizard_plugins as $key => $wizard) { $options[$key] = $wizard['title']; } $form['displays']['show']['wizard_key'] = array( '#type' => 'select', '#title' => $this->t('Show'), '#options' => $options, ); $show_form = &$form['displays']['show']; $default_value = \Drupal::moduleHandler()->moduleExists('node') ? 'node' : 'users'; $show_form['wizard_key']['#default_value'] = WizardPluginBase::getSelected($form_state, array('show', 'wizard_key'), $default_value, $show_form['wizard_key']); // Changing this dropdown updates the entire content of $form['displays'] via // AJAX. views_ui_add_ajax_trigger($show_form, 'wizard_key', array('displays')); // Build the rest of the form based on the currently selected wizard plugin. $wizard_key = $show_form['wizard_key']['#default_value']; $wizard_instance = $this->wizardManager->createInstance($wizard_key); $form = $wizard_instance->buildForm($form, $form_state); return $form; }
Please login to continue.