You are here

function openlayers_maps_ui::edit_execute_form in Openlayers 7.2

Implements ctools_export_ui::edit_execute_form().

This is hacky, but since CTools Export UI uses drupal_goto() we have to effectively change the plugin to modify the redirect path dynamically.

Overrides ctools_export_ui::edit_execute_form

File

modules/openlayers_ui/plugins/export_ui/openlayers_maps_ui.class.php, line 590

Class

openlayers_maps_ui
@file

Code

function edit_execute_form(&$form_state) {
  $output = parent::edit_execute_form($form_state);
  if (!empty($form_state['executed'])) {
    $clicked = $form_state['clicked_button']['#value'];
    if (t('Save and edit') == $clicked) {

      // We always want to redirect back to this page when adding an item,
      // but we want to preserve the destination so we can be redirected back
      // to where we came from after clicking "Save".
      $options = array();
      if (!empty($_GET['destination'])) {
        $options['query']['destination'] = $_GET['destination'];
        unset($_GET['destination']);
      }

      // Sets redirect path and options.
      $op = $form_state['op'];
      $name = $form_state['values']['name'];
      $path = 'add' != $op ? current_path() : 'admin/structure/openlayers/maps/list/' . $name . '/edit';
      $this->plugin['redirect'][$op] = array(
        $path,
        $options,
      );
    }
  }
  return $output;
}