You are here

function path_metatags_ui_add_form_submit in Path metatags 7

Submit callback for path_metatags_ui_add_form.

_state

Parameters

$form:

1 string reference to 'path_metatags_ui_add_form_submit'
path_metatags_ui_add_form in path_metatags_ui/path_metatags_ui.module
Provides multistep form for create/edit path metatags.

File

path_metatags_ui/path_metatags_ui.module, line 263
Provide user interface for CRUD operations with path metatags.

Code

function path_metatags_ui_add_form_submit($form, &$form_state) {
  $values = $form_state['values'];
  if (!empty($form_state['storage']['machine_name']) && !empty($values['machine_name'])) {

    // Move temporary cache to new storage if machine name was changed..
    if ($form_state['storage']['machine_name'] != $values['machine_name']) {
      $metatags = path_metatags_object_cache_get($form_state['storage']['machine_name']);
      path_metatags_object_cache_clear($form_state['storage']['machine_name']);
      path_metatags_object_cache_set($values['machine_name'], $metatags);
      $form_state['storage']['machine_name'] = $values['machine_name'];
    }
  }
  elseif (isset($values['machine_name'])) {

    // Save machine name in form storage.
    $form_state['storage']['machine_name'] = $values['machine_name'];
  }

  // Get current metatags machine name.
  $machine_name = $form_state['storage']['machine_name'];

  // Update cache.
  $metatags = path_metatags_object_cache_get($machine_name);
  if (empty($metatags)) {

    // Initialize cache data.
    $metatags = array();
  }

  // Merge data into cache storage.
  $metatags = array_merge((array) $metatags, $values);
  path_metatags_object_cache_set($machine_name, $metatags);

  // Switch current step.
  if (isset($values['next']) && $values['op'] == $values['next']) {
    $form_state['storage']['step']++;
  }
  elseif (isset($values['prev']) && $values['op'] == $values['prev']) {
    $form_state['storage']['step']--;
  }
  elseif (isset($values['finish']) && $values['op'] == $values['finish']) {
    $form_state['rebuild'] = FALSE;
  }
  $form_state['rebuild'] = TRUE;
}