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

Reply via email to