1.20.x system.api.php hook_url_outbound_alter(&$path, &$options, $original_path)

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

File

modules/system/system.api.php, line 3535
Hooks provided by Backdrop core and the System module.

Code

function hook_url_outbound_alter(&$path, &$options, $original_path) {
  // Use an external RSS feed rather than the Backdrop 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];
    }
  }
}