Extension:UserFunctions
![]() |
WARNING: the code or configuration described here poses a major security risk.
Problem: These functions can be used to leak some of your user's personal data like e-mail address and real name in case $wgUFEnablePersonalDataFunctions is set to true (disabled by default). |
UserFunctions Release status: beta |
|||
---|---|---|---|
Implementation | Parser functions | ||
Description | Provides a set of dynamic parser functions that trigger on the current user | ||
Author(s) | Algorithm, Toniher and others | ||
Last version | 2.2 (2012-01-03) | ||
MediaWiki | 1.12 + | ||
Database changes | no | ||
License | GPLv2 + | ||
Download |
Download snapshot
Git [?]: repo summary • tree • code changes SVN [?]: checkout-url • tree • code changes CHANGELOG |
||
|
|||
|
|||
Check usage (experimental) |
UserFunctions extension provides a set of dynamic parser functions that trigger on the current user.
Contents |
[edit] Usage
{{#ifanon:then|else}}
- Tests whether the current user is anonymous.{{#ifblocked:then|else}}
- Tests whether the current user is blocked.{{#ifsysop:then|else}}
- Tests whether the current user is a sysop.{{#ifingroup:group|then|else}}
- Tests whether the current user is a member of the group "group".{{#realname:alt}}
- Returns the current user's real name. If the user is not logged in, this function returns the given alternate text, or the user IP if no alternate is provided.{{#username:alt}}
- Returns the current username. If the user is not logged in, this function returns the given alternate text, or the user IP if no alternate is provided.{{#useremail:alt}}
- Returns the current user's e-mail address. If the user is not logged in, this function returns the given alternate text, or the user IP if no alternate is provided.{{#nickname:alt}}
- Returns the current user's nickname. If the user has no nickname, returns the username. If the user is not logged in, this function returns the given alternate text, or the user IP if no alternate is provided.{{#ip:}}
- Returns the current user's IP address.
By default the personal data functions #realname, #username, #useremail, #nickname and #ip are disabled. See here to see how to enable them.
By default functions are only enabled in NS_MEDIAWIKI namespace, for enabling them in other namespaces, check out the examples below.
[edit] Installation
- Download the files from SVN with
svn checkout http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/UserFunctions/
download a snapshot (select your version of MediaWiki) - Place the files under
$IP/extensions/UserFunctions
- Add to the end of LocalSettings.php:
require_once("$IP/extensions/UserFunctions/UserFunctions.php");
- If you want to use the following functions:
#realname, #username, #useremail, #nickname, #ip
, add:$wgUFEnablePersonalDataFunctions = true;
- If you want to enable functions in other namespaces apart from
NS_MEDIAWIKI
(default), follow the model of some of the examples below. - Installation can now be verified through Special:Version on your wiki
[edit] Allowing namespaces
By default, user functions only work in NS_MEDIAWIKI
namespace.
Below there are some examples of allowing or disallowing the functions to work in other namespaces. The syntax is based on the one used with subpages.
# Enable UserFunctions in Main Namespace $wgUFAllowedNamespaces[NS_MAIN] = true;
# User Functions enabled in User Mainspace, but not in Main one. $wgUFAllowedNamespaces = array( NS_MAIN => false, NS_USER => true );
# Enable all User Functions in all NS numbered from 0 to 200 $wgUFAllowedNamespaces = array_fill(0, 200, true);
For Special pages, such as the ones used in Semantic Forms creation/modification, include the the NS_SPECIAL (or -1) namespace. Check below:
# Enable UserFunctions in Special pages $wgUFAllowedNamespaces[NS_SPECIAL] = true;
# Enable UserFunctions in Main and Special pages $wgUFAllowedNamespaces = array_fill(-1, 0, true);
More info on namespace numbering.
[edit] Version history
Authors: Algorithm and others
- Version 2.2 (January 03, 2012) added $wgUFAllowedNamespaces parameter. Users need to define in which allowed NS functions will work. - Toniher
- Version 2.1 (December 21, 2011) added $wgUFEnablePersonalDataFunctions parameter. Migrated $wgUser to ParserOptions equivalent - Toniher
- Version 2.0 (December 13, 2011) added i18n and compatibility with other parser function extensions - Toniher
- Version 1.5 (October 30, 2011) added ip - Kghbln
- Version 1.4 (September 27, 2011) added realname - Kghbln
- Version 1.3 (February 13, 2010) added useremail - Wikinaut
- Version 1.2 (July 25, 2008) added ifingroup - Louperivois
- Version 1.1 (June 27, 2008) added nickname - Lexw
- Version 1.0 (May 21, 2006) - Algorithm