function ctools_jump_menu_submit

Submit handler for the jump menu.

This is normally only invoked upon submit without javascript enabled.

1 string reference to 'ctools_jump_menu_submit'
ctools_jump_menu in includes/jump-menu.inc
Generate a jump menu form.

File

includes/jump-menu.inc, line 118

Code

function ctools_jump_menu_submit($form, &$form_state) {
    if ($form_state['values']['jump'] === '') {
        // We have nothing to do when the user has not selected any value.
        return;
    }
    // If the path we are redirecting to contains the string :: then treat the
    // the string after the double colon as the path to redirect to.
    // This allows duplicate paths to be used in jump menus for multiple options.
    $redirect_array = explode("::", $form_state['values']['jump']);
    if (isset($redirect_array[1]) && !empty($redirect_array[1])) {
        $redirect = $redirect_array[1];
    }
    else {
        $redirect = $form_state['values']['jump'];
    }
    // If the path we are redirecting to starts with the base path (for example,
    // "/somepath/node/1"), we need to strip the base path off before passing it
    // to $form_state['redirect'].
    $base_path = base_path();
    if (strpos($redirect, $base_path) === 0) {
        $redirect = substr($redirect, strlen($base_path));
    }
    // Parse the URL so that query strings and fragments are preserved in the
    // redirect.
    $redirect = drupal_parse_url($redirect);
    $redirect['path'] = urldecode($redirect['path']);
    $form_state['redirect'] = array(
        $redirect['path'],
        $redirect,
    );
}