Extension:Redirect302

From MediaWiki.org
(Redirected from User:Joshuagay/Redirect302)
Jump to: navigation, search
MediaWiki extensions manual - list
Crystal Clear action run.png
Redirect302

Release status: beta

Implementation Hook
Description Adds a hook to create 302 style redirects
Author(s) Joshua Gay (Joshuagaytalk)
Latest version 0.2 (2012-11-07)
MediaWiki 1.17+
Database changes No
License GPL
Download see below
Example The Free Software Directory
Hooks used
InitializeArticleMaybeRedirect

Translate the Redirect302 extension if possible

Check usage and version matrix; code metrics

The Redirect302 extension changes the redirect hook so that an http 302 error is issued and the redirect is done on the client side.

Installation[edit | edit source]

  • Copy the code into files and extract the files in a directory called Redirect302 in your extensions/ folder. If you're a developer and this extension is in a Git repository, then instead you should clone the repository.
  • Add the following code at the bottom of your LocalSettings.php:
require_once( "$IP/extensions/Redirect302/Redirect302.php" );
  • Done! Navigate to "Special:Version" on your wiki to verify that the extension is successfully installed.

Code[edit | edit source]

Redirect302.php[edit | edit source]

<?php

/**                                                                                                            
 * This extension changes the redirect hook so that an http 302 error                                          
 * is issued and the redirect is done on the client side.
 *
 * @file
 * @ingroup Extensions                                                      
 */


if ( !defined( 'MEDIAWIKI' ) ) die();

// credits                                                                                                      
define('Redirect302_VERSION', '0.2' );
$wgExtensionCredits['other'][] = array(
         'path' => __FILE__,
         'name' => 'Redirect302',
         'version' => Redirect302_VERSION,
         'author' => array( 'Joshua Gay' ),
         'url' => 'https://www.mediawiki.org/wiki/Extension:Redirect302',
         'descriptionmsg' => 'redirect302-desc',
);

// messages i18n                                                                                                
$dir = dirname(__FILE__) . '/';
$wgExtensionMessagesFiles['Redirect302'] = $dir . 'Redirect302.i18n.php';

// Register hook                                                                                                
$wgHooks['InitializeArticleMaybeRedirect'][] = 'redirect302_hook';

// Redirect with 302                                                                                            
function redirect302_hook($title, $request, &$ignoreRedirect, &$target, &$article) {
  if (!$ignoreRedirect && $article->isRedirect()) {
    if(($target = $article->followRedirect()) instanceof Title) {
      $target = $target->getFullURL();
    }
  }
  return true;
}

Redirect302.i18n.php[edit | edit source]

<?php
/**
 * Internationalisation file for extension Redirect302.
 *
 * @file
 * @ingroup Extensions
 */


$messages = array();
 
/** English
 * @author Joshua Gay
 */

$messages['en'] = array(
         'redirect302-desc' => 'Adds a hook to create 302 style redirects',
);

/** German (Deutsch)
 * @author Kghbln
 */

$messages['de'] = array(
         'titlekey-desc' => 'Ermöglicht Umleitungen mit HTTP-Statuscode 302',
);