You are here

function page_manager_http_response_edit_settings_submit in Chaos Tool Suite (ctools) 7

Same name and namespace in other branches
  1. 6 page_manager/plugins/task_handlers/http_response.inc \page_manager_http_response_edit_settings_submit()

File

page_manager/plugins/task_handlers/http_response.inc, line 267
This is the task handler plugin to handle generating 403, 404, 301 and 302 response codes.

Code

function page_manager_http_response_edit_settings_submit($form, &$form_state) {
  $machine_name = $form_state['handler']->name;
  $name = $form_state['task_name'] . '__' . $form_state['values']['name'];

  // If new name doesn't equal machine name, we need to update and redirect.
  if ($machine_name !== $name) {
    $form_state['handler']->name = $name;

    // If there's a trail, we need to replace it for redirection.
    if (isset($form_state['trail'])) {
      $form_state['new trail'] = $form_state['trail'];
      $delta = array_search($machine_name, $form_state['new trail']);
      $form_state['new trail'][$delta] = $name;
    }

    // If handler id is set, replace it.
    if ($form_state['handler_id']) {
      $form_state['handler_id'] = $name;
    }

    // If we're defining a new custom handler, move page handler to new name.
    if (isset($form_state['page']->handlers[$machine_name]) && isset($form_state['page']->handler_info[$machine_name])) {
      $form_state['page']->handlers[$name] = $form_state['page']->handlers[$machine_name];
      unset($form_state['page']->handlers[$machine_name]);
      $form_state['page']->handler_info[$name] = $form_state['page']->handler_info[$machine_name];
      unset($form_state['page']->handler_info[$machine_name]);
    }
  }
  $form_state['handler']->conf['title'] = $form_state['values']['title'];
  $form_state['handler']->conf['name'] = $form_state['values']['name'];
  $form_state['handler']->conf['code'] = $form_state['values']['code'];
  $form_state['handler']->conf['destination'] = $form_state['values']['destination'];
}