1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- /**
- * @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) {
- if (!request_path() && !empty($_GET['q'])) {
- drupal_set_message("\$_GET['q'] is non-empty with an empty request path.");
- }
- // 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);
- }
- }
|