function redirect_path_update in Redirect 7
Same name and namespace in other branches
- 7.2 redirect.module \redirect_path_update()
Implements hook_path_update().
File
- ./
redirect.module, line 377
Code
function redirect_path_update(array $path) {
if (!variable_get('redirect_auto_redirect', TRUE)) {
return;
}
elseif (isset($path['redirect']) && !$path['redirect']) {
return;
}
if (!empty($path['original']['pid']) && $path['original']['pid'] == $path['pid'] && $path['original']['alias'] != $path['alias']) {
// Disable all redirects having the same source as this alias.
redirect_disable_by_path($path['alias'], $path['language']);
$redirect = new stdClass();
redirect_object_prepare($redirect);
$redirect->source = $path['original']['alias'];
$redirect->redirect = $path['source'];
$redirect->language = $path['original']['language'];
// Check if the redirect exists before saving.
$hash = redirect_hash($redirect);
$existing = redirect_load_by_hash($hash);
if (!$existing) {
redirect_save($redirect);
}
elseif (isset($existing->status) && $existing->status == 0) {
$existing->status = 1;
redirect_save($existing);
}
}
}