function hook_url_outbound_alter

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

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];
        }
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.