SamanthaNguyen has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/392726 )
Change subject: [DNM] Convert UserProfile to use extension registration
......................................................................
[DNM] Convert UserProfile to use extension registration
Bug: T152865
Change-Id: Id3f9c8807099af42ad75113e829535d39e04de62
---
M SocialProfile.php
D UserProfile/UserProfile.php
A UserProfile/extension.json
M UserProfile/i18n/en.json
M UserProfile/i18n/qqq.json
5 files changed, 147 insertions(+), 160 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/SocialProfile
refs/changes/26/392726/1
diff --git a/SocialProfile.php b/SocialProfile.php
index eac8ae1..d187d73 100644
--- a/SocialProfile.php
+++ b/SocialProfile.php
@@ -28,12 +28,10 @@
$wgExtensionMessagesFiles['SocialProfileAlias'] = __DIR__ .
'/SocialProfile.alias.php';
$wgMessagesDirs['SocialProfileUserBoard'] = __DIR__ . '/UserBoard/i18n';
-$wgMessagesDirs['SocialProfileUserProfile'] = __DIR__ . '/UserProfile/i18n';
$wgMessagesDirs['SocialProfileUserRelationship'] = __DIR__ .
'/UserRelationship/i18n';
$wgMessagesDirs['SocialProfileUserStats'] = __DIR__ . '/UserStats/i18n';
$wgExtensionMessagesFiles['SocialProfileNamespaces'] = __DIR__ .
'/SocialProfile.namespaces.php';
-$wgExtensionMessagesFiles['AvatarMagic'] = __DIR__ .
'/UserProfile/Avatar.i18n.magic.php';
// Classes to be autoloaded
$wgAutoloadClasses['GenerateTopUsersReport'] = __DIR__ .
'/UserStats/GenerateTopUsersReport.php';
@@ -42,23 +40,12 @@
$wgAutoloadClasses['EchoUserLevelAdvancePresentationModel'] = __DIR__ .
'/UserStats/EchoUserLevelAdvancePresentationModel.php';
$wgAutoloadClasses['SpecialAddRelationship'] = __DIR__ .
'/UserRelationship/SpecialAddRelationship.php';
$wgAutoloadClasses['SpecialBoardBlast'] = __DIR__ .
'/UserBoard/SpecialSendBoardBlast.php';
-$wgAutoloadClasses['SpecialEditProfile'] = __DIR__ .
'/UserProfile/SpecialEditProfile.php';
-$wgAutoloadClasses['SpecialPopulateUserProfiles'] = __DIR__ .
'/UserProfile/SpecialPopulateExistingUsersProfiles.php';
-$wgAutoloadClasses['SpecialRemoveRelationship'] = __DIR__ .
'/UserRelationship/SpecialRemoveRelationship.php';
-$wgAutoloadClasses['SpecialToggleUserPage'] = __DIR__ .
'/UserProfile/SpecialToggleUserPageType.php';
-$wgAutoloadClasses['SpecialUpdateProfile'] = __DIR__ .
'/UserProfile/SpecialUpdateProfile.php';
-$wgAutoloadClasses['SpecialUploadAvatar'] = __DIR__ .
'/UserProfile/SpecialUploadAvatar.php';
-$wgAutoloadClasses['UploadAvatar'] = __DIR__ .
'/UserProfile/SpecialUploadAvatar.php';
$wgAutoloadClasses['SpecialViewRelationshipRequests'] = __DIR__ .
'/UserRelationship/SpecialViewRelationshipRequests.php';
$wgAutoloadClasses['SpecialViewRelationships'] = __DIR__ .
'/UserRelationship/SpecialViewRelationships.php';
$wgAutoloadClasses['SpecialViewUserBoard'] = __DIR__ .
'/UserBoard/SpecialUserBoard.php';
-$wgAutoloadClasses['RemoveAvatar'] = __DIR__ .
'/UserProfile/SpecialRemoveAvatar.php';
$wgAutoloadClasses['UpdateEditCounts'] = __DIR__ .
'/UserStats/SpecialUpdateEditCounts.php';
$wgAutoloadClasses['UserBoard'] = __DIR__ . '/UserBoard/UserBoardClass.php';
$wgAutoloadClasses['UserBoardHooks'] = __DIR__ .
'/UserBoard/UserBoardHooks.php';
-$wgAutoloadClasses['UserProfile'] = __DIR__ .
'/UserProfile/UserProfileClass.php';
-$wgAutoloadClasses['UserProfileHooks'] = __DIR__ .
'/UserProfile/UserProfileHooks.php';
-$wgAutoloadClasses['UserProfilePage'] = __DIR__ .
'/UserProfile/UserProfilePage.php';
$wgAutoloadClasses['UserRelationship'] = __DIR__ .
'/UserRelationship/UserRelationshipClass.php';
$wgAutoloadClasses['UserRelationshipHooks'] = __DIR__ .
'/UserRelationship/UserRelationshipHooks.php';
$wgAutoloadClasses['UserStatsHooks'] = __DIR__ .
'/UserStats/UserStatsHooks.php';
@@ -69,14 +56,8 @@
$wgAutoloadClasses['TopFansByStat'] = __DIR__ . '/UserStats/TopFansByStat.php';
$wgAutoloadClasses['TopFansRecent'] = __DIR__ . '/UserStats/TopFansRecent.php';
$wgAutoloadClasses['TopUsersPoints'] = __DIR__ . '/UserStats/TopUsers.php';
-$wgAutoloadClasses['wAvatar'] = __DIR__ . '/UserProfile/AvatarClass.php';
-$wgAutoloadClasses['AvatarParserFunction'] = __DIR__ .
'/UserProfile/AvatarParserFunction.php';
-$wgAutoloadClasses['SPUserSecurity'] = __DIR__ .
'/UserProfile/UserSecurityClass.php';
// API modules
-$wgAutoloadClasses['ApiUserProfilePrivacy'] = __DIR__ .
'/UserProfile/ApiUserProfilePrivacy.php';
-$wgAPIModules['smpuserprivacy'] = 'ApiUserProfilePrivacy';
-
$wgAutoloadClasses['ApiDeleteUserBoardMessage'] = __DIR__ .
'/UserBoard/ApiDeleteUserBoardMessage.php';
$wgAPIModules['socialprofile-delete-message'] = 'ApiDeleteUserBoardMessage';
@@ -111,31 +92,16 @@
// New special pages
$wgSpecialPages['AddRelationship'] = 'SpecialAddRelationship';
-$wgSpecialPages['EditProfile'] = 'SpecialEditProfile';
$wgSpecialPages['GenerateTopUsersReport'] = 'GenerateTopUsersReport';
-$wgSpecialPages['PopulateUserProfiles'] = 'SpecialPopulateUserProfiles';
-$wgSpecialPages['RemoveAvatar'] = 'RemoveAvatar';
$wgSpecialPages['RemoveRelationship'] = 'SpecialRemoveRelationship';
$wgSpecialPages['SendBoardBlast'] = 'SpecialBoardBlast';
$wgSpecialPages['TopFansByStatistic'] = 'TopFansByStat';
$wgSpecialPages['TopUsers'] = 'TopUsersPoints';
$wgSpecialPages['TopUsersRecent'] = 'TopFansRecent';
-$wgSpecialPages['ToggleUserPage'] = 'SpecialToggleUserPage';
$wgSpecialPages['UpdateEditCounts'] = 'UpdateEditCounts';
-$wgSpecialPages['UpdateProfile'] = 'SpecialUpdateProfile';
-$wgSpecialPages['UploadAvatar'] = 'SpecialUploadAvatar';
$wgSpecialPages['UserBoard'] = 'SpecialViewUserBoard';
$wgSpecialPages['ViewRelationshipRequests'] =
'SpecialViewRelationshipRequests';
$wgSpecialPages['ViewRelationships'] = 'SpecialViewRelationships';
-
-// What to display on social profile pages by default?
-$wgUserProfileDisplay['board'] = true;
-$wgUserProfileDisplay['foes'] = true;
-$wgUserProfileDisplay['friends'] = true;
-$wgUserProfileDisplay['avatar'] = true; // If set to false, disables both
avatar display and upload
-
-// Should we display UserBoard-related things on social profile pages?
-$wgUserBoard = true;
// Whether to enable friending or not -- this doesn't do very much actually,
so don't rely on it
$wgFriendingEnabled = true;
@@ -183,15 +149,16 @@
$wgAutoloadClasses['SocialProfileHooks'] = __DIR__ . '/SocialProfileHooks.php';
// Loader files
-require_once( "$IP/extensions/SocialProfile/UserProfile/UserProfile.php" ); //
Profile page configuration loader file
require_once( "$IP/extensions/SocialProfile/UserGifts/Gifts.php" ); //
UserGifts (user-to-user gifting functionality) loader file
require_once( "$IP/extensions/SocialProfile/SystemGifts/SystemGifts.php" ); //
SystemGifts (awards functionality) loader file
-wfLoadExtension( 'SocialProfile/UserActivity' ); // UserActivity - recent
social changes
+wfLoadExtensions( [
+ 'SocialProfile/UserActivity', // UserActivity - recent social changes
+ 'SocialProfile/UserProfile'
+] );
$wgHooks['BeforePageDisplay'][] = 'SocialProfileHooks::onBeforePageDisplay';
$wgHooks['CanonicalNamespaces'][] =
'SocialProfileHooks::onCanonicalNamespaces';
$wgHooks['LoadExtensionSchemaUpdates'][] =
'SocialProfileHooks::onLoadExtensionSchemaUpdates';
-$wgHooks['ParserFirstCallInit'][] =
'AvatarParserFunction::setupAvatarParserFunction';
// For the Renameuser extension
$wgHooks['RenameUserComplete'][] = 'SocialProfileHooks::onRenameUserComplete';
diff --git a/UserProfile/UserProfile.php b/UserProfile/UserProfile.php
deleted file mode 100644
index 1420d1e..0000000
--- a/UserProfile/UserProfile.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-// Global profile namespace reference
-define( 'NS_USER_PROFILE', 202 );
-define( 'NS_USER_WIKI', 200 );
-
-// Show user avatars in diffs?
-$wgUserProfileAvatarsInDiffs = false;
-
-/**
- * If you want to require users to have a certain number of certain things,
like
- * five edits or three friends or two comments or whatever (is supported by
- * SocialProfile/the user_stats DB table) before they can use
Special:UpdateProfile,
- * use this global.
- *
- * For example, to require a user to have five edits before they're allowed to
access
- * Special:UpdateProfile, set:
- * @code
- * $wgUserProfileThresholds = array( 'edits' => 5 );
- * @endcode
- *
- * To require both ten edits *and* three friends, set:
- * @code
- * $wgUserProfileThresholds = array( 'edits' => 10, 'friend-count' => 3 );
- * @endcode
- */
-$wgUserProfileThresholds = array(
-/**
- * All currently "supported" options (supported meaning that there is i18n
support):
- * edits // normal edits in the namespaces that earn you points
($wgNamespacesForEditPoints)
- * votes // [[mw:Extension:VoteNY]] votes
- * comments // [[mw:Extension:Comments]] comments
- * comment-score-plus // [[mw:Extension:Comments]] upvoted comments
- * comment-score-minus // [[mw:Extension:Comments]] downvoted comments
- * recruits // recruits; see [[mw:Extension:NewSignupPage]]
- * friend-count // friends
- * foe-count // foes
- * weekly-wins // @see /UserStats/GenerateTopUsersReport.php
- * monthly-wins // @see /UserStats/GenerateTopUsersReport.php
- * poll-votes // [[mw:Extension:PollNY]] votes
- * picture-game-votes // [[mw:Extension:PictureGame]] votes
- * quiz-created // [[mw:Extension:QuizGame]] created quizzes
- * quiz-answered // [[mw:Extension:QuizGame]] answered quizzes in total
- * quiz-correct // [[mw:Extension:QuizGame]] correctly answered quizzes
- * quiz-points // [[mw:Extension:QuizGame]] points in total
-*/
-);
-
-// Default setup for displaying sections
-$wgUserPageChoice = true;
-
-$wgUserProfileDisplay['friends'] = false;
-$wgUserProfileDisplay['foes'] = false;
-$wgUserProfileDisplay['gifts'] = true;
-$wgUserProfileDisplay['awards'] = true;
-$wgUserProfileDisplay['profile'] = true;
-$wgUserProfileDisplay['board'] = false;
-$wgUserProfileDisplay['stats'] = false; // Display statistics on user profile
pages?
-$wgUserProfileDisplay['interests'] = true;
-$wgUserProfileDisplay['custom'] = true;
-$wgUserProfileDisplay['personal'] = true;
-$wgUserProfileDisplay['activity'] = false; // Display recent social activity?
-$wgUserProfileDisplay['userboxes'] = false; // If FanBoxes extension is
installed, setting this to true will display the user's fanboxes on their
profile page
-$wgUserProfileDisplay['games'] = false; // Display casual games created by the
user on their profile? This requires three separate social extensions:
PictureGame, PollNY and QuizGame
-
-$wgUpdateProfileInRecentChanges = false; // Show a log entry in recent changes
whenever a user updates their profile?
-$wgUploadAvatarInRecentChanges = false; // Same as above, but for avatar
uploading
-
-$wgAvailableRights[] = 'avatarremove';
-$wgAvailableRights[] = 'editothersprofiles';
-$wgGroupPermissions['sysop']['avatarremove'] = true;
-$wgGroupPermissions['staff']['editothersprofiles'] = true;
-
-// ResourceLoader support for MediaWiki 1.17+
-$wgResourceModules['ext.socialprofile.userprofile.css'] = array(
- 'styles' => 'UserProfile.css',
- 'localBasePath' => __DIR__,
- 'remoteExtPath' => 'SocialProfile/UserProfile',
- 'position' => 'top'
-);
-
-$wgResourceModules['ext.socialprofile.userprofile.js'] = array(
- 'scripts' => 'UserProfilePage.js',
- 'messages' => array( 'user-board-confirm-delete' ),
- 'dependencies' => array( 'mediawiki.api', 'mediawiki.util' ),
- 'localBasePath' => __DIR__,
- 'remoteExtPath' => 'SocialProfile/UserProfile',
-);
-
-// Modules for Special:EditProfile/Special:UpdateProfile
-$wgResourceModules['ext.userProfile.updateProfile'] = array(
- 'scripts' => 'UpdateProfile.js',
- 'dependencies' => array( 'mediawiki.api', 'mediawiki.util',
'jquery.ui.datepicker' ),
- 'localBasePath' => __DIR__,
- 'remoteExtPath' => 'SocialProfile/UserProfile',
- 'position' => 'top'
-);
-
-// CSS for user avatars in page diffs
-$wgResourceModules['ext.socialprofile.userprofile.diff'] = array(
- 'styles' => 'AvatarsInDiffs.css',
- 'localBasePath' => __DIR__,
- 'remoteExtPath' => 'SocialProfile/UserProfile',
- 'position' => 'top'
-);
-
-# Add new log types for profile edits and avatar uploads
-global $wgLogTypes, $wgLogNames, $wgLogHeaders, $wgLogActions;
-$wgLogTypes[] = 'profile';
-$wgLogNames['profile'] = 'profilelogpage';
-$wgLogHeaders['profile'] = 'profilelogpagetext';
-$wgLogActions['profile/profile'] = 'profilelogentry';
-
-$wgLogTypes[] = 'avatar';
-$wgLogNames['avatar'] = 'avatarlogpage';
-$wgLogHeaders['avatar'] = 'avatarlogpagetext';
-$wgLogActions['avatar/avatar'] = 'avatarlogentry';
-
-$wgHooks['ArticleFromTitle'][] = 'UserProfileHooks::onArticleFromTitle';
-$wgHooks['OutputPageBodyAttributes'][] =
'UserProfileHooks::onOutputPageBodyAttributes';
-$wgHooks['DifferenceEngineShowDiff'][] =
'UserProfileHooks::onDifferenceEngineShowDiff';
-$wgHooks['DifferenceEngineShowDiffPage'][] =
'UserProfileHooks::onDifferenceEngineShowDiffPage';
-$wgHooks['DifferenceEngineOldHeader'][] =
'UserProfileHooks::onDifferenceEngineOldHeader';
-$wgHooks['DifferenceEngineNewHeader'][] =
'UserProfileHooks::onDifferenceEngineNewHeader';
\ No newline at end of file
diff --git a/UserProfile/extension.json b/UserProfile/extension.json
new file mode 100644
index 0000000..62a3c87
--- /dev/null
+++ b/UserProfile/extension.json
@@ -0,0 +1,141 @@
+{
+ "name": "UserProfile",
+ "author": [
+ "Aaron Wright",
+ "David Pean",
+ "Jack Phoenix"
+ ],
+ "license-name": "GPL-2.0+",
+ "descriptionmsg": "useprofile-desc",
+ "type": "other",
+ "MessagesDirs": {
+ "UserProfile": [
+ "i18n"
+ ]
+ },
+ "ExtensionMessagesFiles": {
+ "AvatarMagic": "Avatar.i18n.magic.php"
+ },
+ "AutoloadClasses": {
+ "SpecialEditProfile": "SpecialEditProfile.php",
+ "SpecialPopulateUserProfiles":
"SpecialPopulateExistingUsersProfiles.php",
+ "SpecialToggleUserPage": "SpecialToggleUserPageType.php",
+ "SpecialUpdateProfile": "SpecialUpdateProfile.php",
+ "SpecialUploadAvatar": "SpecialUploadAvatar.php",
+ "RemoveAvatar": "SpecialRemoveAvatar.php",
+ "UserProfile": "UserProfileClass.php",
+ "UserProfileHooks": "UserProfileHooks.php",
+ "UserProfilePage": "UserProfilePage.php",
+ "UploadAvatar": "SpecialUploadAvatar.php",
+ "wAvatar": "AvatarClass.php",
+ "AvatarParserFunction": "AvatarParserFunction.php",
+ "ApiUserProfilePrivacy": "ApiUserProfilePrivacy.php",
+ "SPUserSecurity": "UserSecurityClass.php"
+ },
+ "APIModules": {
+ "smpuserprivacy": "ApiUserProfilePrivacy"
+ },
+ "Hooks": {
+ "ParserFirstCallInit":
"AvatarParserFunction::setupAvatarParserFunction",
+ "OutputPageBodyAttributes":
"UserProfileHooks::onOutputPageBodyAttributes",
+ "ArticleFromTitle": "UserProfileHooks::onArticleFromTitle",
+ "DifferenceEngineShowDiff":
"UserProfileHooks::onDifferenceEngineShowDiff",
+ "DifferenceEngineShowDiffPage":
"UserProfileHooks::onDifferenceEngineShowDiffPage",
+ "DifferenceEngineOldHeader":
"UserProfileHooks::onDifferenceEngineOldHeader",
+ "DifferenceEngineNewHeader":
"UserProfileHooks::onDifferenceEngineNewHeader"
+ },
+ "SpecialPages": {
+ "EditProfile": "SpecialEditProfile",
+ "PopulateUserProfiles": "SpecialPopulateUserProfiles",
+ "ToggleUserPage": "SpecialToggleUserPage",
+ "UpdateProfile": "SpecialUpdateProfile",
+ "UploadAvatar": "SpecialUploadAvatar",
+ "RemoveAvatar": "RemoveAvatar"
+ },
+ "config": {
+ "UserProfileAvatarsInDiffs": false,
+ "UserProfileThresholds": [],
+ "UserPageChoice": true,
+ "UserProfileDisplay": {
+ "friends": true,
+ "foes": true,
+ "gifts": true,
+ "awards": true,
+ "profile": true,
+ "board": true,
+ "stats": false,
+ "interests": true,
+ "custom": true,
+ "personal": true,
+ "activity": false,
+ "userboxes": false,
+ "games": false,
+ "avatar": true
+ },
+ "UpdateProfileInRecentChanges": false,
+ "UploadAvatarInRecentChanges": false,
+ "UserBoard": true
+ },
+ "LogTypes": [
+ "profile",
+ "avatar"
+ ],
+ "LogNames": {
+ "profile": "profilelogpage",
+ "avatar": "avatarlogpage"
+ },
+ "LogHeaders": {
+ "profile": "profilelogpagetext",
+ "avatar": "avatarlogpagetext"
+ },
+ "LogActions": {
+ "profile/profile": "profilelogentry",
+ "avatar/avatar": "avatarlogentry"
+ },
+ "AvailableRights": [
+ "avatarremove",
+ "editothersprofiles"
+ ],
+ "GroupPermissions": {
+ "sysop": {
+ "avatarremove": true
+ },
+ "staff": {
+ "editothersprofiles": true
+ }
+ },
+ "ResourceModules": {
+ "ext.socialprofile.userprofile.css": {
+ "styles": "UserProfile.css",
+ "position": "top"
+ },
+ "ext.socialprofile.userprofile.js": {
+ "scripts": "UserProfilePage.js",
+ "messages": [
+ "user-board-confirm-delete"
+ ],
+ "dependencies": [
+ "mediawiki.api",
+ "mediawiki.util"
+ ]
+ },
+ "ext.userProfile.updateProfile": {
+ "scripts": "UpdateProfile.js",
+ "dependencies": [
+ "mediawiki.api",
+ "mediawiki.util",
+ "jquery.ui.datepicker"
+ ],
+ "position": "top"
+ },
+ "ext.socialprofile.userprofile.diff": {
+ "styles": "AvatarsInDiffs.css",
+ "position": "top"
+ }
+ },
+ "ResourceFileModulePaths": {
+ "localBasePath": "",
+ "remoteExtPath": "SocialProfile/UserProfile"
+ },
+ "manifest_version": 1
+}
\ No newline at end of file
diff --git a/UserProfile/i18n/en.json b/UserProfile/i18n/en.json
index 7c635fd..94662c9 100644
--- a/UserProfile/i18n/en.json
+++ b/UserProfile/i18n/en.json
@@ -5,6 +5,7 @@
"David Pean"
]
},
+ "userprofile-desc": "Allows creating custom social profile pages",
"editprofile": "Edit other users' profiles",
"populateuserprofiles": "Populate user profiles",
"user-time-ago": "$1 ago",
diff --git a/UserProfile/i18n/qqq.json b/UserProfile/i18n/qqq.json
index 2e0753b..9f38bcb 100644
--- a/UserProfile/i18n/qqq.json
+++ b/UserProfile/i18n/qqq.json
@@ -11,6 +11,7 @@
"Umherirrender"
]
},
+ "userprofile-desc":
"{{desc|name=UserProfile|url=https://www.mediawiki.org/wiki/Extension:SocialProfile}}",
"user-count-separator": "$1 and $2 are numbers of users.",
"user-watchlist": "{{Identical|My watchlist}}",
"user-add-friend": "{{Identical|Add as friend}}",
--
To view, visit https://gerrit.wikimedia.org/r/392726
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Id3f9c8807099af42ad75113e829535d39e04de62
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/SocialProfile
Gerrit-Branch: master
Gerrit-Owner: SamanthaNguyen <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits