|
|
Drupal example source code file (url_alter_test.module)
The url_alter_test.module Drupal example source code<?php // $Id: url_alter_test.module,v 1.3 2010/01/29 22:40:41 dries Exp $ /** * @file * Module to help test hook_url_inbound_alter() and hook_url_outbound_alter(). */ /** * Implements hook_menu(). */ function url_alter_test_menu() { $items['url-alter-test/foo'] = array( 'title' => 'Foo', 'page callback' => 'url_alter_test_foo', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, ); return $items; } /** * Menu callback. */ function url_alter_test_foo() { print 'current_path=' . current_path() . ' request_path=' . request_path(); exit; } /** * Implements hook_url_inbound_alter(). */ function url_alter_test_url_inbound_alter(&$path, $original_path, $path_language) { // Rewrite user/username to user/uid. if (preg_match('!^user/([^/]+)(/.*)?!', $path, $matches)) { if ($account = user_load_by_name($matches[1])) { $matches += array(2 => ''); $path = 'user/' . $account->uid . $matches[2]; } } // Rewrite community/ to forum/. if ($path == 'community' || strpos($path, 'community/') === 0) { $path = 'forum' . substr($path, 9); } if ($path == 'url-alter-test/bar') { $path = 'url-alter-test/foo'; } } /** * Implements hook_url_outbound_alter(). */ function url_alter_test_url_outbound_alter(&$path, &$options, $original_path) { // Rewrite user/uid to user/username. if (preg_match('!^user/([0-9]+)(/.*)?!', $path, $matches)) { if ($account = user_load($matches[1])) { $matches += array(2 => ''); $path = 'user/' . $account->name . $matches[2]; } } // Rewrite forum/ to community/. if ($path == 'forum' || strpos($path, 'forum/') === 0) { $path = 'community' . substr($path, 5); } } Other Drupal examples (source code examples)Here is a short list of links related to this Drupal url_alter_test.module source code file: |
"Drupal" is a registered trademark of Dries Buytaert.
my drupal tutorials and examples
Copyright
1998-2016 Alvin Alexander, alvinalexander.com
All Rights Reserved.
Beginning in 2016, a portion of the proceeds from pages under the '/drupal-code-examples/' URI will be donated to charity.