array('container'), '#attributes' => array('class' => array('scroll')), ); $form['details']['human_name'] = array( '#type' => 'textfield', '#title' => t('Human-readable name'), '#description' => t('A descriptive human-readable name for this view. Spaces are allowed'), '#default_value' => $view->getHumanName(), ); $form['details']['langcode'] = array( '#type' => 'language_select', '#title' => t('View language'), '#description' => t('Language of labels and other textual elements in this view.'), '#default_value' => $view->get('langcode'), ); $form['details']['tag'] = array( '#type' => 'textfield', '#title' => t('View tag'), '#description' => t('Optionally, enter a comma delimited list of tags for this view to use in filtering and sorting views on the administrative page.'), '#default_value' => $view->get('tag'), '#autocomplete_path' => 'admin/views/ajax/autocomplete/tag', ); $form['details']['description'] = array( '#type' => 'textfield', '#title' => t('View description'), '#description' => t('This description will appear on the Views administrative UI to tell you what the view is about.'), '#default_value' => $view->get('description'), ); $view->getStandardButtons($form, $form_state, 'views_ui_edit_details_form'); return $form; } /** * Overrides \Drupal\views_ui\Form\Ajax\ViewsFormBase::submitForm(). */ public function submitForm(array &$form, array &$form_state) { $view = $form_state['view']; foreach ($form_state['values'] as $key => $value) { // Only save values onto the view if they're actual view properties // (as opposed to 'op' or 'form_build_id'). if (isset($form['details'][$key])) { $view->set($key, $value); } } $bases = drupal_container()->get('views.views_data')->fetchBaseTables(); $form_state['#page_title'] = $view->getHumanName(); if (isset($bases[$view->get('base_table')])) { $form_state['#page_title'] .= ' (' . $bases[$view->get('base_table')]['title'] . ')'; } views_ui_cache_set($view); } }