public ViewUI::submitItemAdd($form, FormStateInterface $form_state)
Submit handler for adding new item(s) to a view.
File
- core/modules/views_ui/src/ViewUI.php, line 425
Class
- ViewUI
- Stores UI related temporary settings.
Namespace
Drupal\views_ui
Code
public function submitItemAdd($form, FormStateInterface $form_state) { $type = $form_state->get('type'); $types = ViewExecutable::getHandlerTypes(); $section = $types[$type]['plural']; $display_id = $form_state->get('display_id'); // Handle the override select. list($was_defaulted, $is_defaulted) = $this->getOverrideValues($form, $form_state); if ($was_defaulted && !$is_defaulted) { // We were using the default display's values, but we're now overriding // the default display and saving values specific to this display. $display = &$this->getExecutable()->displayHandlers->get($display_id); // setOverride toggles the override of this section. $display->setOverride($section); } elseif (!$was_defaulted && $is_defaulted) { // We used to have an override for this display, but the user now wants // to go back to the default display. // Overwrite the default display with the current form values, and make // the current display use the new default values. $display = &$this->getExecutable()->displayHandlers->get($display_id); // optionsOverride toggles the override of this section. $display->setOverride($section); } if (!$form_state->isValueEmpty('name') && is_array($form_state->getValue('name'))) { // Loop through each of the items that were checked and add them to the view. foreach (array_keys(array_filter($form_state->getValue('name'))) as $field) { list($table, $field) = explode('.', $field, 2); if ($cut = strpos($field, '$')) { $field = substr($field, 0, $cut); } $id = $this->getExecutable()->addHandler($display_id, $type, $table, $field); // check to see if we have group by settings $key = $type; // Footer,header and empty text have a different internal handler type(area). if (isset($types[$type]['type'])) { $key = $types[$type]['type']; } $item = array( 'table' => $table, 'field' => $field, ); $handler = Views::handlerManager($key)->getHandler($item); if ($this->getExecutable()->displayHandlers->get('default')->useGroupBy() && $handler->usesGroupBy()) { $this->addFormToStack('handler-group', $display_id, $type, $id); } // check to see if this type has settings, if so add the settings form first if ($handler && $handler->hasExtraOptions()) { $this->addFormToStack('handler-extra', $display_id, $type, $id); } // Then add the form to the stack $this->addFormToStack('handler', $display_id, $type, $id); } } if (isset($this->form_cache)) { unset($this->form_cache); } // Store in cache $this->cacheSet(); }
Please login to continue.