Siebrand has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/103511


Change subject: Create a user page when granting translator rights
......................................................................

Create a user page when granting translator rights

Bug: 58710
Change-Id: I133526d250fa93f19a632244c5a4955362133790
---
M api/ApiTranslateSandbox.php
M i18n/sandbox/en.json
2 files changed, 31 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Translate 
refs/changes/11/103511/1

diff --git a/api/ApiTranslateSandbox.php b/api/ApiTranslateSandbox.php
index 2237015..6f989fe 100644
--- a/api/ApiTranslateSandbox.php
+++ b/api/ApiTranslateSandbox.php
@@ -12,7 +12,6 @@
  * @ingroup API TranslateAPI
  */
 class ApiTranslateSandbox extends ApiBase {
-
        public function execute() {
                global $wgTranslateUseSandbox;
                if ( !$wgTranslateUseSandbox ) {
@@ -74,6 +73,8 @@
 
                $user->setOption( 'language', 
$this->getContext()->getLanguage()->getCode() );
                $user->saveSettings();
+
+               $this->createUserPage( $user );
 
                $this->getResult()->addValue( null, $this->getModuleName(), 
$output );
        }
@@ -150,6 +151,32 @@
                }
        }
 
+       /**
+        *
+        * @param User $user
+        * @return Status|bool False when a user page already existed, or the 
Status
+        *   of the user page creation by WikiPage::doEditContent().
+        */
+       protected function createUserPage( User $user ) {
+               $userpage = $user->getUserPage();
+
+               if( $userpage->exists() ) {
+                       return Status::newGood();
+               }
+
+               $languages = $user->getOption( 'translate-sandbox' );
+               $languages = implode( '|', $languages );
+               $babeltext = '{{#babel:' . $languages . '}}';
+               $summary = $this->msg( 'tsb-create-user-page' 
)->inContentLanguage()->text();
+
+               $page = WikiPage::factory( $userpage );
+               $content = ContentHandler::makeContent( $babeltext, $userpage );
+
+               $editResult = $page->doEditContent( $content, $summary, 
EDIT_NEW, false, $user );
+
+               return $editResult;
+       }
+
        public function mustBePosted() {
                return true;
        }
diff --git a/i18n/sandbox/en.json b/i18n/sandbox/en.json
index cd8a055..a5a32d6 100644
--- a/i18n/sandbox/en.json
+++ b/i18n/sandbox/en.json
@@ -43,9 +43,10 @@
     "tsb-limit-reached-title": "Thanks for your translations",
     "tsb-limit-reached-body": "You reached the translation limit for new 
translators.\nOur team will verify and upgrade your account soon.\nThen you 
will be able to translate without limits.",
     "tsb-no-requests-from-new-users": "No requests from new users",
-    "tsb-promoted-from-sandbox": "User has been promoted to translator",
+       "tsb-promoted-from-sandbox": "User has been promoted to translator",
+       "tsb-create-user-page": "Create basic user page",
     "log-name-translatorsandbox": "Translation sandbox",
     "log-description-translatorsandbox": "A log of actions on translation 
sandbox users",
     "logentry-translatorsandbox-promoted": "$1 {{GENDER:$2|promoted}} $3 to 
{{GENDER:$4|translator}}",
     "logentry-translatorsandbox-rejected": "$1 {{GENDER:$2|rejected}} the 
request from \"$3\" to become a translator"
-}
\ No newline at end of file
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/103511
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I133526d250fa93f19a632244c5a4955362133790
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Translate
Gerrit-Branch: master
Gerrit-Owner: Siebrand <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to