diff options
Diffstat (limited to 'www/wiki/extensions/Translate/utils/TranslateSandboxEmailJob.php')
-rw-r--r-- | www/wiki/extensions/Translate/utils/TranslateSandboxEmailJob.php | 46 |
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; + } +} |