Open main menu
MediaWiki扩展手册
OOjs UI icon advanced.svg
GetUserName
发布状态: 稳定版
实现 变量
描述 Allows the current user's name to be put in a page
作者 (Ejcaputotalk)
最新版本 1.0 (2010-07-10)
许可协议 GNU通用公眾授權條款2.0
下载 请查阅代码部分
翻译GetUserName扩展如果在translatewiki.net可用
检查使用和版本矩阵。

Template:Extension/archived

This extension IS maintained, it works even with the latest versions of MediaWiki (tested with 1.31). I find it to be a useful function, albeit extremely simple and not useful for large wikis, but if I'm the only one using it, or there are other extensions which do the same thing but better (e.g. MyVariables), I suppose that it makes sense to delete it.

The GetUserName extension allows to obtain the current user's name from wgUser and insert it on a page.

用法Edit

When {{#USERNAME:}} is found in the page, it will replace it with the current user name. I wrote this because I wanted to make a link where the users could create draft documents easily, with unique names, in their user namespace. 我将这段内容添加至我的页面:

Create a document "[[User:{{#USERNAME:}}/Draft-{{CURRENTTIMESTAMP}}]]"
This extension is not suitable for large wikis or long pages, because the cache is invalidated for pages using this extension (see Extension_talk:GetUserName page).

安装Edit

  • 将下列代码放置在您的LocalSettings.php的底部:
    require_once "$IP/extensions/GetUserName/GetUserName.php";
    
  •   完成 – 在您的wiki上导航至Special:Version,以验证扩展已成功安装。

代码Edit

GetUserName.php
<?php
if ( !defined( 'MEDIAWIKI' ) ) {
    die( 'This file is a MediaWiki extension and not a valid entry point' );
}
 
$wgExtensionCredits['parserhook'][] = array(
    'path' => __FILE__,
    'name' => 'GetUserName',
    'version' => '1.0',
    'url' => 'https://www.mediawiki.org/wiki/Extension:GetUserName',
    'author' => 'Ejcaputo',
    'description' => "Allows the current user's name to be put in a page"
);  

$wgHooks[ 'ParserFirstCallInit' ][] = "ExtGetUserName::setup";
$wgHooks[ 'LanguageGetMagic' ][]  = 'ExtGetUserName::languageGetMagic';

class ExtGetUserName {
    private static $parserFunctions = array(
        'USERNAME' => 'getUserName',
    );
 
    public static function setup( &$parser ) {
        // register each hook
        foreach( self::$parserFunctions as $hook => $function )
            $parser->setFunctionHook( $hook,
                array( __CLASS__, $function ), SFH_OBJECT_ARGS );
 
        return true;
    }
 
    public static function languageGetMagic( &$magicWords, $langCode ) {
        $magicWords[ 'USERNAME' ] = array( 0, 'USERNAME' ); 
        return true;
    }
 
    public static function getUserName( &$parser, $frame, $args ) {
        $parser->disableCache();
	global $wgUser;
        return trim( $wgUser->getName() );
    }
}


另見Edit