function path_redirect_save in Path redirect 6
Same name and namespace in other branches
- 5 path_redirect.module \path_redirect_save()
Save an URL redirect to the database.
4 calls to path_redirect_save()
- PathRedirectTestHelper::addRedirect in ./
path_redirect.test - path_redirect_check_alias_changed in ./
path_redirect.module - Creates a redirect if an URL alias is being changed.
- path_redirect_edit_form_submit in ./
path_redirect.admin.inc - path_redirect_generate_redirects in generate/
path_redirect_generate.module
File
- ./
path_redirect.module, line 318
Code
function path_redirect_save(&$redirect) {
// Merge default values.
$redirect += array(
'rid' => NULL,
'query' => '',
'fragment' => '',
'language' => '',
'type' => variable_get('path_redirect_default_status', 301),
'last_used' => time(),
);
// Convert query arrays into a saveable query string.
if (isset($redirect['source_query']) && is_array($redirect['source_query'])) {
$redirect['source'] .= '?' . drupal_query_string_encode($redirect['source_query']);
}
if (is_array($redirect['query'])) {
$redirect['query'] = drupal_query_string_encode($redirect['query']);
}
// Allow spaces in "from" path
// @todo Move to validation?
$redirect['source'] = str_replace('+', ' ', $redirect['source']);
// Remove beginning and trailing slashes from path.
// @todo Move to validation?
$redirect['source'] = trim($redirect['source'], '\\/?');
path_redirect_clear_cache();
if (empty($redirect['rid'])) {
drupal_write_record('path_redirect', $redirect);
module_invoke_all('path_redirect_insert', $redirect);
}
else {
drupal_write_record('path_redirect', $redirect, array(
'rid',
));
module_invoke_all('path_redirect_update', $redirect);
}
return $redirect;
}