#64280: Renamed from legacy.module to legacy/legacy.module
parent
2df30a3e92
commit
df509f4a49
|
@ -1,202 +0,0 @@
|
||||||
<?php
|
|
||||||
// $Id$
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* Provides legacy handlers for upgrades from older Drupal installations.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Implementation of hook_help().
|
|
||||||
*/
|
|
||||||
function legacy_help($section) {
|
|
||||||
switch ($section) {
|
|
||||||
case 'admin/help#legacy':
|
|
||||||
$output = '<p>'. t('The legacy module provides legacy handlers for upgrades from older installations. These handlers help automatically redirect references to pages from old installations and prevent <em>page not found</em> errors for your site.') .'</p>';
|
|
||||||
$output .= '<p>'. t('The legacy module handles legacy style taxonomy page, taxonomy feed, and blog feed paths. It also handles URL upgrades from Drupal 4.1. It rewrites old-style URLs to new-style URLs (clean URLs). ') .'</p>';
|
|
||||||
$output .= t('<p>Example Mappings:</p>
|
|
||||||
<ul>
|
|
||||||
<li><em>taxonomy/page/or/52,97</em> to <em>taxonomy/term/52+97</em>.</li>
|
|
||||||
<li><em>taxonomy/feed/or/52,97</em> to <em>taxonomy/term/52+97/0/feed</em>.</li>
|
|
||||||
<li><em>blog/feed/52</em> to <em>blog/52/feed</em>.</li>
|
|
||||||
<li><em>node/view/52</em> to <em>node/52</em>.</li>
|
|
||||||
<li><em>book/view/52</em> to <em>node/52</em>.</li>
|
|
||||||
<li><em>user/view/52</em> to <em>user/52</em>.</li>
|
|
||||||
</ul>
|
|
||||||
');
|
|
||||||
$output .= '<p>'. t('Legacy module has no configurable options.') .'</p>';
|
|
||||||
$output .= '<p>'. t('For more information please read the configuration and customization handbook <a href="%legacy">Legacy page</a>.', array('%legacy' => 'http://drupal.org/handbook/modules/legacy/')) .'</p>';
|
|
||||||
return $output;
|
|
||||||
case 'admin/modules#description':
|
|
||||||
return t('Provides legacy handlers for upgrades from older Drupal installations.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Implementation of hook_menu().
|
|
||||||
*
|
|
||||||
* Registers menu paths used in earlier Drupal versions.
|
|
||||||
*/
|
|
||||||
function legacy_menu($may_cache) {
|
|
||||||
$items = array();
|
|
||||||
|
|
||||||
if ($may_cache) {
|
|
||||||
// Map "taxonomy/page/or/52,97" to "taxonomy/term/52+97".
|
|
||||||
$items[] = array('path' => 'taxonomy/page', 'title' => t('taxonomy'),
|
|
||||||
'callback' => 'legacy_taxonomy_page',
|
|
||||||
'access' => TRUE, 'type' => MENU_CALLBACK);
|
|
||||||
|
|
||||||
// Map "taxonomy/feed/or/52,97" to "taxonomy/term/52+97/0/feed".
|
|
||||||
$items[] = array('path' => 'taxonomy/feed', 'title' => t('taxonomy'),
|
|
||||||
'callback' => 'legacy_taxonomy_feed',
|
|
||||||
'access' => TRUE, 'type' => MENU_CALLBACK);
|
|
||||||
|
|
||||||
// Map "blog/feed/52" to "blog/52/feed".
|
|
||||||
$items[] = array('path' => 'blog/feed', 'title' => t('blog'),
|
|
||||||
'callback' => 'legacy_blog_feed',
|
|
||||||
'access' => TRUE, 'type' => MENU_CALLBACK);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// Map "node/view/52" to "node/52".
|
|
||||||
$items[] = array('path' => 'node/view', 'title' => t('view'),
|
|
||||||
'callback' => 'drupal_goto',
|
|
||||||
'callback arguments' => array('node/'. arg(2), NULL, NULL),
|
|
||||||
'access' => TRUE, 'type' => MENU_CALLBACK);
|
|
||||||
|
|
||||||
// Map "book/view/52" to "node/52".
|
|
||||||
$items[] = array('path' => 'book/view', 'title' => t('view'),
|
|
||||||
'callback' => 'drupal_goto',
|
|
||||||
'callback arguments' => array('node/'. arg(2), NULL, NULL),
|
|
||||||
'access' => TRUE, 'type' => MENU_CALLBACK);
|
|
||||||
|
|
||||||
// Map "user/view/52" to "user/52".
|
|
||||||
$items[] = array('path' => 'user/view', 'title' => t('view'),
|
|
||||||
'callback' => 'drupal_goto',
|
|
||||||
'callback arguments' => array('user/'. arg(2), NULL, NULL),
|
|
||||||
'access' => TRUE, 'type' => MENU_CALLBACK);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $items;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Menu callback; redirects users to new taxonomy page paths.
|
|
||||||
*/
|
|
||||||
function legacy_taxonomy_page($operation = 'or', $str_tids = '') {
|
|
||||||
if ($operation == 'or') {
|
|
||||||
$str_tids = str_replace(',', '+', $str_tids);
|
|
||||||
}
|
|
||||||
drupal_goto('taxonomy/term/'. $str_tids);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Menu callback; redirects users to new taxonomy feed paths.
|
|
||||||
*/
|
|
||||||
function legacy_taxonomy_feed($operation = 'or', $str_tids = '') {
|
|
||||||
if ($operation == 'or') {
|
|
||||||
$str_tids = str_replace(',', '+', $str_tids);
|
|
||||||
}
|
|
||||||
drupal_goto('taxonomy/term/'. $str_tids .'/0/feed');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Menu callback; redirects users to new blog feed paths.
|
|
||||||
*/
|
|
||||||
function legacy_blog_feed($str_uid = '') {
|
|
||||||
// if URL is of form blog/feed/52 redirect
|
|
||||||
// if URL is of form blog/feed we have to call blog_feed_last().
|
|
||||||
if (is_numeric($str_uid)) {
|
|
||||||
drupal_goto('blog/'. $str_uid .'/feed');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
module_invoke('blog', 'feed_last');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Implementation of hook_filter(). Handles URL upgrades from Drupal 4.1.
|
|
||||||
*/
|
|
||||||
function legacy_filter($op, $delta = 0, $format = -1, $text = '') {
|
|
||||||
switch ($op) {
|
|
||||||
case 'list':
|
|
||||||
return array(t('Legacy filter'));
|
|
||||||
|
|
||||||
case 'description':
|
|
||||||
return t('Replaces URLs from Drupal 4.1 (and lower) with updated equivalents.');
|
|
||||||
|
|
||||||
case 'process':
|
|
||||||
return _legacy_filter_old_urls($text);
|
|
||||||
|
|
||||||
case 'settings':
|
|
||||||
return;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return $text;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Rewrite legacy URLs.
|
|
||||||
*
|
|
||||||
* This is a *temporary* filter to rewrite old-style URLs to new-style
|
|
||||||
* URLs (clean URLs). Currently, URLs are being rewritten dynamically
|
|
||||||
* (ie. "on output"), however when these rewrite rules have been tested
|
|
||||||
* enough, we will use them to permanently rewrite the links in node
|
|
||||||
* and comment bodies.
|
|
||||||
*/
|
|
||||||
function _legacy_filter_old_urls($text) {
|
|
||||||
if (!variable_get('rewrite_old_urls', 0)) {
|
|
||||||
return $text;
|
|
||||||
}
|
|
||||||
|
|
||||||
global $base_url;
|
|
||||||
|
|
||||||
$end = substr($base_url, 12);
|
|
||||||
|
|
||||||
if (variable_get('clean_url', '0') == '0') {
|
|
||||||
// Relative URLs:
|
|
||||||
|
|
||||||
// rewrite 'node.php?id=<number>[&cid=<number>]' style URLs:
|
|
||||||
$text = eregi_replace("\"(node)\.php\?id=([[:digit:]]+)(&cid=)?([[:digit:]]*)", "\"?q=\\1/view/\\2/\\4", $text);
|
|
||||||
|
|
||||||
// rewrite 'module.php?mod=<name>{&<op>=<value>}' style URLs:
|
|
||||||
$text = ereg_replace("\"module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "\"?q=\\2/\\4/\\6" , $text);
|
|
||||||
$text = ereg_replace("\"module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "\"?q=\\2/\\4", $text);
|
|
||||||
$text = ereg_replace("\"module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))", "\"?q=\\2", $text);
|
|
||||||
|
|
||||||
// Absolute URLs:
|
|
||||||
|
|
||||||
// rewrite 'node.php?id=<number>[&cid=<number>]' style URLs:
|
|
||||||
$text = eregi_replace("$end/(node)\.php\?id=([[:digit:]]+)(&cid=)?([[:digit:]]*)", "$end/?q=\\1/view/\\2/\\4", $text);
|
|
||||||
|
|
||||||
// rewrite 'module.php?mod=<name>{&<op>=<value>}' style URLs:
|
|
||||||
$text = ereg_replace("$end/module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "$end/?q=\\2/\\4/\\6" , $text);
|
|
||||||
$text = ereg_replace("$end/module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "$end/?q=\\2/\\4", $text);
|
|
||||||
$text = ereg_replace("$end/module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))", "\"$end/?q=\\2", $text);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// Relative URLs:
|
|
||||||
|
|
||||||
// Rewrite 'node.php?id=<number>[&cid=<number>]' style URLs:
|
|
||||||
$text = eregi_replace("\"(node)\.php\?id=([[:digit:]]+)(&cid=)?([[:digit:]]*)", "\"\\1/view/\\2/\\4", $text);
|
|
||||||
|
|
||||||
// Rewrite 'module.php?mod=<name>{&<op>=<value>}' style URLs:
|
|
||||||
$text = ereg_replace("\"module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "\"\\2/\\4/\\6", $text);
|
|
||||||
$text = ereg_replace("\"module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "\"\\2/\\4", $text);
|
|
||||||
$text = ereg_replace("\"module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))", "\"\\2", $text);
|
|
||||||
|
|
||||||
// Absolute URLs:
|
|
||||||
|
|
||||||
// Rewrite 'node.php?id=<number>[&cid=<number>]' style URLs:
|
|
||||||
$text = eregi_replace("$end/(node)\.php\?id=([[:digit:]]+)(&cid=)?([[:digit:]]*)", "$end/\\1/view/\\2/\\4", $text);
|
|
||||||
|
|
||||||
// Rewrite 'module.php?mod=<name>{&<op>=<value>}' style URLs:
|
|
||||||
$text = ereg_replace("$end/module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "$end/\\2/\\4/\\6", $text);
|
|
||||||
$text = ereg_replace("$end/module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "$end/\\2/\\4", $text);
|
|
||||||
$text = ereg_replace("$end/module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))", "$end/\\2", $text);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $text;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue