function hook_url_outbound_alter in Drupal 7
Alters outbound URLs.
Parameters
$path: The outbound path to alter, not adjusted for path aliases yet. It won't be adjusted for path aliases until all modules are finished altering it, thus being consistent with hook_url_inbound_alter(), which adjusts for all path aliases before allowing modules to alter it. This may have been altered by other modules before this one.
$options: A set of URL options for the URL so elements such as a fragment or a query string can be added to the URL.
$original_path: The original path, before being altered by any modules.
See also
url()
Related topics
2 functions implement hook_url_outbound_alter()
Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.
- locale_url_outbound_alter in modules/
locale/ locale.module - Implements hook_url_outbound_alter().
- url_alter_test_url_outbound_alter in modules/
simpletest/ tests/ url_alter_test.module - Implements hook_url_outbound_alter().
1 invocation of hook_url_outbound_alter()
- url in includes/
common.inc - Generates an internal or external URL.
File
- modules/
system/ system.api.php, line 4353 - Hooks provided by Drupal core and the System module.
Code
function hook_url_outbound_alter(&$path, &$options, $original_path) {
// Use an external RSS feed rather than the Drupal one.
if ($path == 'rss.xml') {
$path = 'http://example.com/rss.xml';
$options['external'] = TRUE;
}
// Instead of pointing to user/[uid]/edit, point to user/me/edit.
if (preg_match('|^user/([0-9]*)/edit(/.*)?|', $path, $matches)) {
global $user;
if ($user->uid == $matches[1]) {
$path = 'user/me/edit' . $matches[2];
}
}
}