Jump to content

扩展:重定向302

From mediawiki.org
This page is a translated version of the page Extension:Redirect302 and the translation is 100% complete.
MediaWiki扩展手册
Redirect302
发行状态: 不再維護
实现 函数钩
描述 添加一个钩子以创建302样式重定向
作者 Joshua Gay (Joshuagay留言)
最新版本 0.2 (2012-11-07)
MediaWiki 1.17+
数据库更改
许可协议 GNU通用公眾授權條款2.0或更新版本
下載 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
 * license: GPL-2.0-or-later
 */

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样式重定向',
);