Extension:GetUserName

From MediaWiki.org
Jump to navigation Jump to search

Other languages:
Deutsch • ‎English • ‎Nederlands • ‎dansk • ‎español • ‎polski • ‎sicilianu • ‎中文 • ‎日本語
MediaWiki extensions manual
Crystal Clear action run.svg
GetUserName
Release status: stable
Implementation Variable
Description Allows the current user's name to be put in a page
Author(s) (Ejcaputotalk)
Latest version 1.0 (2010-07-10)
License GNU General Public License 2.0
Download See the code section
Hooks used
ParserFirstCallInit
LanguageGetMagic
Translate the GetUserName extension if it is available at translatewiki.net
Check usage and version matrix.
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.

Usage[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. I added this to my page:

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).

Installation[edit]

  • Add the following code at the bottom of your LocalSettings.php:
    require_once "$IP/extensions/GetUserName/GetUserName.php";
    
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Code[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() );
    }
}


See also[edit]