summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/Translate/utils/TranslateSandboxEmailJob.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/Translate/utils/TranslateSandboxEmailJob.php')
-rw-r--r--www/wiki/extensions/Translate/utils/TranslateSandboxEmailJob.php46
1 files changed, 46 insertions, 0 deletions
diff --git a/www/wiki/extensions/Translate/utils/TranslateSandboxEmailJob.php b/www/wiki/extensions/Translate/utils/TranslateSandboxEmailJob.php
new file mode 100644
index 00000000..955e7156
--- /dev/null
+++ b/www/wiki/extensions/Translate/utils/TranslateSandboxEmailJob.php
@@ -0,0 +1,46 @@
+<?php
+
+class TranslateSandboxEmailJob extends Job {
+ /**
+ * @param array $params
+ * @return self
+ */
+ public static function newJob( array $params ) {
+ return new self( Title::newMainPage(), $params );
+ }
+
+ /**
+ * @param Title $title
+ * @param array $params
+ */
+ public function __construct( $title, $params ) {
+ parent::__construct( __CLASS__, $title, $params );
+ }
+
+ public function run() {
+ $status = UserMailer::send(
+ $this->params['to'],
+ $this->params['from'],
+ $this->params['subj'],
+ $this->params['body'],
+ [ 'replyTo' => $this->params['replyto'] ]
+ );
+
+ $isOK = $status->isOK();
+
+ if ( $isOK && $this->params['emailType'] === 'reminder' ) {
+ $user = User::newFromId( $this->params['user'] );
+
+ $reminders = $user->getOption( 'translate-sandbox-reminders' );
+ $reminders = $reminders ? explode( '|', $reminders ) : [];
+ $reminders[] = wfTimestamp();
+ $user->setOption( 'translate-sandbox-reminders', implode( '|', $reminders ) );
+
+ $reminders = $user->getOption( 'translate-sandbox-reminders' );
+ $user->setOption( 'translate-sandbox-reminders', $reminders );
+ $user->saveSettings();
+ }
+
+ return $isOK;
+ }
+}