From MediaWiki.org
Jump to: navigation, search
MediaWiki extensions manualManual:Extensions
Crystal Clear action run.png
Social Profile

Release status:Extension status stable

ImplementationTemplate:Extension#type Special page, Database, Ajax
DescriptionTemplate:Extension#description Incorporates a basic social profile into a MediaWiki, specifically:
  • Avatars
  • Befriending, foeing
  • User board
  • Board blast
  • Basic profile information
  • user levels
  • awards
  • gifts
Latest versionTemplate:Extension#version 1.10 (Continuous updates)
Database changesTemplate:Extension#needs-updatephp Yes
LicenseTemplate:Extension#license GNU General Public License 2.0 or later
Download Template:WikimediaDownload/gerritonly
ExampleTemplate:Extension#example Halopedia
Development/Testing wiki on Wikimedia Labs
  • $wgUserPageChoice
  • $wgUpdateProfileInRecentChanges
  • $wgUploadAvatarInRecentChanges
  • $wgUserProfileDisplay
  • $wgUserProfileThresholds
  • $wgUserLevels
  • $wgNamespacesForEditPoints
  • $wgUserStatsPointValues
Added rightsTemplate:Extension#rights
  • avatarremove
  • awardsmanage
  • editothersprofiles
  • giftadmin
  • updatepoints
  • userboard-delete
Hooks usedTemplate:Extension#hook

Translate the SocialProfile extension if it is available at translatewiki.net

Check usage and version matrix.


Open tasks · Report a bug

The SocialProfile extension incorporates a social profile, user board, and basic profile information into MediaWiki, specifically avatars, befriending, foeing, user board, board blast, basic profile information, user levels rank system, awards and gifts. The package also notifies users via email when other users request them as a friend or foe and/or sends them a message.

You'll need MediaWiki 1.29 or newer for this extension. Everything else required by SocialProfile is included in the package already.

If you are upgrading from SocialProfile version 1.2 or older, you'll need to create four new database tables manually: gift, system_gift, user_gift and user_system_gift. If you're upgrading from 1.3, you'll need to create user_system_messages database table.


Please see Extension:SocialProfile/Screenshots for screenshots of the extension and some very brief descriptions of the features.


  • If you use the ExtensionDistributor to download SocialProfile, make sure that you select "master (latest development version)"; older versions are guaranteed to have lots of bugs and they are unmaintained, while trunk is always up-to-date and contains the newest features and bugfixes!
  • You can also use git, like so:
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/SocialProfile
  • In older versions of SocialProfile, there was a script named 'install.php' in SocialProfile's directory, which was used to initialize the tables.
  • Since r93317, SocialProfile's namespaces are automagically registered, so you do not need to add them to $wgExtraNamespaces.
  • SocialProfile uses either ImageMagickManual:Image administration#Image thumbnailing or PHP's built-in GD library (since r93067), depending on which one is available, for creating the resized avatar, award and gift image files.
  • Add the following code at the bottom of your LocalSettings.php:
    require_once "$IP/extensions/SocialProfile/SocialProfile.php";
  • Run the update script which will automatically create the necessary database tables that this extension needs.
  • The following directories should exist under the wiki's $wgUploadDirectory:
    • avatars/ — the directory where all user-uploaded avatar images are stored
    • awards/ — system gift (award) and normal gift images will be stored here
    • Please move the directory awards/ from extensions/SocialProfile into the images directory that is used in your MediaWiki installation. This directory should be writable. The images included in this folder by default can be used for awards if you upload them through Special:SystemGiftManagerLogo, but they won't show up as "defaults" the same way avatar default images do show up.
    • Please move the directory avatars from extensions/SocialProfile into the images directory used in your MediaWiki installation. This directory should be writable.
  • YesY Done - Navigate to Special:Version on your wiki to verify that the extension is successfully installed.


Some features will not work without additional modifications, but if chosen by the site admin, may be left out.


To enable friends/foes to display on the user page, the following additions need to be made to LocalSettings.php:

The following settings should be placed directly under the require_once line:

$wgUserProfileDisplay['friends'] = true;
$wgUserProfileDisplay['foes'] = true;


To enable the Board to display on the user page, allowing users to view messages posted, the following additions need to be made to LocalSettings.php:

The following settings should be placed directly under the require_once line:

$wgUserBoard = true;
$wgUserProfileDisplay['board'] = true;

User-specific statistics[edit]

To enable per-user statistics that show up on the profile pages, add the following into your wiki's LocalSettings.php:

$wgUserProfileDisplay['stats'] = true;

Points/rank system[edit]

User Levels show on the users' profile pages and on various other places across the wiki. This feature is available from SocialProfile version 1.1 onwards (rev:37590).

Note that this feature must be correctly configured, or it can interfere with other features, such as avatar upload and messaging. See the discussion on the talk page.

To enable User Levels, add something like the following into your wiki's LocalSettings.php, after calling SocialProfile.php:

require_once("$IP/extensions/SocialProfile/UserStats/EditCount.php"); // Necessary edit counter
// The actual user level definitions -- key is simple: 'Level name' => points needed
$wgUserLevels = array(
	'Recruit' => 0,
	'Apprentice' => 1200,
	'Private' => 1750,
	'Corporal' => 2500,
	'Sergeant' => 5000,
	'Gunnery Sergeant' => 10000,
	'Lieutenant' => 20000,
	'Captain' => 35000,
	'Major' => 50000,
	'Lieutenant Commander' => 75000,
	'Commander' => 100000,
	'Colonel' => 150000,
	'Brigadier' => 250000,
	'Brigadier General' => 350000,
	'Major General' => 500000,
	'Lieutenant General' => 650000,
	'General' => 800000,
	'General of the Army' => 1000000,

You may also want to configure the actions for which points are being awarded. By default, 50 points are awarded on a main namespace edit. The defaults are:

$wgUserStatsPointValues['edit'] = 50; // Points awarded on a mainspace edit
$wgUserStatsPointValues['vote'] = 0; // Points awarded for voting for an article
$wgUserStatsPointValues['comment'] = 0; // Points awarded for leaving a comment
$wgUserStatsPointValues['comment_plus'] = 0; // Points awarded if your comment gets a thumbs up
$wgUserStatsPointValues['comment_ignored'] = 0; // Points awarded if another user ignores your comments
$wgUserStatsPointValues['opinions_created'] = 0; // Points awarded for writing a blog article
$wgUserStatsPointValues['opinions_pub'] = 0; // Points awarded for having that article hit the "Blogs" page
$wgUserStatsPointValues['referral_complete'] = 0; // Points awarded for recruiting a new user
$wgUserStatsPointValues['friend'] = 0; // Points awarded for adding a friend
$wgUserStatsPointValues['foe'] = 0; // Points awarded for adding a foe
$wgUserStatsPointValues['gift_rec'] = 0; // Points awarded for receiving a gift
$wgUserStatsPointValues['gift_sent'] = 0; // Points awarded for giving a gift
$wgUserStatsPointValues['points_winner_weekly'] = 0; // Points awarded for having the most points for a week
$wgUserStatsPointValues['points_winner_monthly'] = 0; // Points awarded for having the most points for a month
$wgUserStatsPointValues['user_image'] = 1000; // Points awarded for adding your first avatar
$wgUserStatsPointValues['poll_vote'] = 0; // Points awarded for taking a poll
$wgUserStatsPointValues['quiz_points'] = 0; // Points awarded for answering a quiz question
$wgUserStatsPointValues['quiz_created'] = 0; // Points awarded for creating a quiz question
$wgNamespacesForEditPoints = array( 0 ); // Array of namespaces that can earn you points. Use numerical keys. Default is 0 -- only main namespace edits can earn a user points.

Most of the above require separate social extensions to be installed and configured. However, there are actions for which you can give out points without installing separate extensions. These actions are:

  • editing ($wgUserStatsPointValues['edit'])
  • friending another user ($wgUserStatsPointValues['friend'])
  • foeing another user ($wgUserStatsPointValues['foe'])
  • uploading your first avatar ($wgUserStatsPointValues['user_image'])
  • sending a gift ($wgUserStatsPointValues['gift_sent'])
  • receiving a gift ($wgUserStatsPointValues['gift_rec'])

Even if you didn't want to change the defaults, you might need to re-define one $wgUserStatsPointValues variable after including EditCount.php and defining $wgUserLevels. You could just add the following default to your wiki's LocalSettings.php, assuming that you don't want to change it:

$wgUserStatsPointValues['edit'] = 50;

After UserLevels is configured, you might want to visit Special:UpdateEditCounts to initialize the points (requires you to have the updatepoints user right). You should also visit this page every time after changing $wgUserStatsPointValues.

The list of users with the most points can be seen at Special:TopUsers.

New Configuration Variables Introduced in 1.3[edit]

  • $wgUserGiftsDirectory — path to UserGifts files. Defaults to $IP/extensions/SocialProfile/UserGifts.
  • $wgUserGiftsScripts — similar to the above. Defaults to $wgScriptPath/extensions/SocialProfile/UserGifts.
  • $wgSystemGiftsDirectory — path to SystemGift files. Defaults to $IP/extensions/SocialProfile/SystemGifts.
  • $wgSystemGiftsScripts — Defaults to $wgScriptPath/extensions/SocialProfile/SystemGifts.
  • $wgFriendingEnabled — whether to enable friending or not. Not really effective, don't rely on it.
  • $wgMaxCustomUserGiftCount — maximum number of private custom gifts that a user may create. If not set (as per default), normal users cannot access Special:GiftManager, only those with giftadmin privileges can access it. Please note that when this is set, users can create their own gifts but they cannot delete them.
  • $wgGiveGiftPerRow(description needed)

New Special Pages in 1.3 release[edit]

  • Related to SystemGifts a.k.a the award functionality:
    • Special:TopAwards — lists the awards that have been given out the most times.
    • Special:ViewSystemGifts — a special page for viewing all of your own awards.
    • Special:ViewSystemGift — not meant to be accessed directly.
    • Special:SystemGiftManager — allows to add and remove awards, requires the awardsmanage right.
    • Special:SystemGiftManagerLogo — allows to upload award images which will be stored in the awards folder. Restricted to users with the awardsmanage right.
    • Special:PopulateAwards — a special page to give out awards. Restricted to users with awardsmanage right.

  • Related to UserGifts a.k.a user-to-user gifting functionality:
    • Special:GiveGift — a special page that allows you to give a gift to another wiki user.
    • Special:ViewGifts — a special page for viewing all your own gifts.
    • Special:ViewGift — not meant to be accessed directly.
    • Special:GiftManager — allows to add, remove and modify gifts. Restricted to users with the giftadmin right or all logged-in users if $wgMaxCustomUserGiftCount is set.
    • Special:GiftManagerLogo — allows to upload new gift images, restricted to users with the giftadmin right.
    • Special:RemoveMasterGift — allows to remove a gift completely, restricted to users with giftadmin right.
    • Special:RemoveGift — allows an individual user to remove a gift given to him/her.

Restricted Special Pages[edit]

Certain special pages introduced by SocialProfile extension are restricted to the staff user group by default. To enable access to the special page Special:PopulateUserProfiles, create a user group called staff and add yourself into the group.

If you do not want to create such a user group however, you can manually edit the file extensions/SocialProfile/UserProfile/SpecialPopulateUserProfiles.php.

Custom Information[edit]

The titles of the custom text input boxes can be changed via the following system messages:

  • MediaWiki:Custom-info-field1
  • MediaWiki:Custom-info-field2
  • MediaWiki:Custom-info-field3
  • MediaWiki:Custom-info-field4


SocialProfile adds two logs: avatar log (Special:Log/avatar), which tracks avatar image uploads and user profile log (Special:Log/profile), which tracks changes to users' social profiles. Since version 1.1 (rev:37590), avatar and profile logs can be hidden from the recent changes as they tend to flood the recent changes list quickly.

  • To turn off the display of avatar uploads, set: $wgUploadAvatarInRecentChanges = false;
  • To turn off the display of user profile changes, set: $wgUpdateProfileInRecentChanges = false;

Both of these variables are pre-set to false in version 1.1.


  • avatarremove — allows access to Special:RemoveAvatar, it allows removal of others' avatars. Given to 'sysop' and 'staff' groups by default.
  • awardsmanage — allows access to Special:PopulateAwards and Special:SystemGiftManager. Given to 'awardsmanage', 'sysop' and 'staff' groups by default.
  • editothersprofiles — allows access to Special:EditProfile, a special page to edit other users' social profiles. Given to the 'staff' group by default; since 84989.
  • generatetopusersreport — allows accessing Special:GenerateTopUsersReport, which can be used to generate the report of top users, and thus to give out points for having the most points for a week or for a month; available since r91854. By default no group has this right.
  • giftadmin — allows access to Special:GiftManager. Given to 'giftadmin', 'sysop' and 'staff' groups by default.
  • updatepoints — available since r50604. Users with this right are allowed access to Special:UpdateEditCounts. By default no group has this right.
  • userboard-delete — available since r50565. Users with this right can delete other users' board messages. By default no group has this right.


To prevent spambots from creating a social profile page right after registering, you can set the $wgUserProfileThresholds variable in LocalSettings.php. For example, to require a user to have five edits before they're allowed to access Special:UpdateProfile, set:

$wgUserProfileThresholds = array( 'edits' => 5 );

To require a user to have both ten edits and three friends before they're allowed to access Special:UpdateProfile, set:

$wgUserProfileThresholds = array( 'edits' => 10, 'friend-count' => 3 );

Developer Info[edit]

Please see Extension:SocialProfile/For developers for info on how to develop SocialProfile, submit patches and more.

Reporting software bugs[edit]

Licensing and downloads[edit]

The extension is available under the GNU General Public License 2.0 or later, and the newest version can always be downloaded from MediaWiki git at https://phabricator.wikimedia.org/diffusion/ESPR/

The software is provided as-is. Updates will be made when critical vulnerabilities are discovered.

Social toolsSocial tools
SocialProfileExtension:SocialProfile OverviewExtension:SocialProfileDeveloper infoExtension:SocialProfile/For developersScreenshotsExtension:SocialProfile/ScreenshotsHistorySocial tools#History
Other social extensions Automatic Board WelcomeExtension:Automatic Board WelcomeBlogPageExtension:BlogPageChallengeExtension:ChallengeFanBoxesExtension:FanBoxesMiniInviteExtension:MiniInviteNewUsersListExtension:NewUsersListPictureGameExtension:PictureGamePollNYExtension:PollNYQuizGameExtension:QuizGameRandomFeaturedUserExtension:RandomFeaturedUserRandomGameUnitExtension:RandomGameUnitRandomUsersWithAvatarsExtension:RandomUsersWithAvatarsSiteMetricsExtension:SiteMetricsSiteScoutExtension:SiteScoutSportsTeamsExtension:SportsTeamsUserStatusExtension:UserStatusUserWelcomeExtension:UserWelcome
Other related extensions

(which do not depend on SocialProfile)