扩展:重定向302

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:Redirect302 and the translation is 100% complete.
Other languages:
English • ‎Türkçe • ‎español • ‎中文 • ‎日本語
MediaWiki擴充功能手冊
OOjs UI icon advanced.svg
Redirect302
发布状态: 未维护
实现 钩子
描述 添加一个钩子以创建302样式重定向
作者 Joshua Gay (Joshuagay讨论)
最新版本 0.2 (2012-11-07)
MediaWiki 1.17+
数据庫更改
许可协议 GPL
下载 see below
例子 The Free Software Directory
检查使用和版本矩阵。

重定向302扩展更改了重定向钩子,以便发出http 302错误,并在客户端完成重定向。

安装

  • 将代码复制到文件中文件,并将其放置在您extensions/文件夹中的Redirect302目录内。
  • 将下列代码放置在您的LocalSettings.php的底部:
    require_once "$IP/extensions/Redirect302/Redirect302.php";
    
  • Yes 完成 – 在您的wiki上导航至Special:Version,以验证扩展已成功安装。

代码

Redirect302.php

<?php

/**
 * 此扩展更改了重定向钩子,以便发出http 302错误,并在客户端完成重定向。
 *
 * @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

<?php
/**
 * 重定向302扩展的国际化文件。
 *
 * @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(
         'redirect302-desc' => 'Ermöglicht Umleitungen mit HTTP-Statuscode 302',
);

On-wiki translation

/** Chinese
 * @author ?
 */
$messages['zh'] = array(
         'redirect302-desc' => '添加一个钩子以创建302样式重定向',
);