function _redirect_migrate_path_redirect_redirect in Redirect 7
Same name and namespace in other branches
- 7.2 redirect.install \_redirect_migrate_path_redirect_redirect()
Migrate a path redirect redirect to a redirect redirect.
1 call to _redirect_migrate_path_redirect_redirect()
- _redirect_migrate_path_redirect_redirects in ./
redirect.install - Migrate data and variables from the Drupal 6 path_redirect module.
File
- ./
redirect.install, line 302 - Install, update and uninstall functions for the redirect module.
Code
function _redirect_migrate_path_redirect_redirect($old_redirect) {
$redirect = new stdClass();
redirect_object_prepare($redirect);
$source_parsed = redirect_parse_url($old_redirect->source);
$redirect->source = $source_parsed['url'];
if (!empty($source_parsed['query'])) {
$redirect->source_options['query'] = $source_parsed['query'];
}
$redirect_parsed = redirect_parse_url($old_redirect->redirect) + array(
'query' => drupal_get_query_array($old_redirect->query),
'fragment' => $old_redirect->fragment,
);
$redirect->redirect = $redirect_parsed['url'];
if (!empty($redirect_parsed['query'])) {
$redirect->redirect_options['query'] = $redirect_parsed['query'];
}
if (!empty($redirect_parsed['fragment'])) {
$redirect->redirect_options['fragment'] = $redirect_parsed['fragment'];
}
if (!empty($redirect_parsed['https'])) {
$redirect->redirect_options['https'] = TRUE;
}
// Make sure empty language codes get migrated to use the new constant.
$redirect->language = empty($old_redirect->language) ? LANGUAGE_NONE : $old_redirect->language;
// Default status codes get a value of 0.
if ($old_redirect->type != variable_get('redirect_default_status_code', 301)) {
$redirect->status_code = (int) $old_redirect->type;
}
redirect_hash($redirect);
if (redirect_load_by_hash($redirect->hash)) {
// If a redirect with the same hash already exists, then it needs to be
// skipped.
$redirect->success = FALSE;
}
else {
// Add the redirect to the database.
db_insert('redirect')
->fields(array(
'hash' => $redirect->hash,
'type' => 'redirect',
'uid' => 1,
'source' => $redirect->source,
'source_options' => serialize($redirect->source_options),
'redirect' => $redirect->redirect,
'redirect_options' => serialize($redirect->redirect_options),
'language' => $redirect->language,
'status_code' => $redirect->status_code,
'status' => 1,
'count' => 0,
'access' => $old_redirect->last_used,
))
->execute();
// Migrating this redirect succeeded.
$redirect->success = TRUE;
}
return $redirect;
}