/** * * @param array $aResponsibleEditorIds * @param User $oUser * @param array $aTitles * @param string $sAction */ public static function notifyResponsibleEditors($aResponsibleEditorIds, $oUser, $aTitles, $sAction) { if (empty($aResponsibleEditorIds)) { return true; } foreach ($aResponsibleEditorIds as $iUserId) { $oREUser = User::newFromId($iUserId); if ($iUserId == $oUser->getId()) { continue; } if (BsConfig::getVarForUser("MW::ResponsibleEditors::E" . ucfirst($sAction), $oREUser) === false) { continue; } $sUserRealName = BsCore::getInstance()->getUserDisplayName($oUser); $sUsername = $oUser->getName(); $sArticleName = $aTitles[0]->getText(); $sArticleLink = $aTitles[0]->getFullURL(); $sLanguageCode = $oREUser->getOption('language'); switch ($sAction) { case 'change': $sSubject = wfMessage('bs-responsibleeditors-mail-subject-re-article-changed', $sArticleName, $sUsername, $sUserRealName)->inLanguage($sLanguageCode)->text(); $sMessage = wfMessage('bs-responsibleeditors-mail-text-re-article-changed', $sArticleName, $sUsername, $sUserRealName, $sArticleLink)->inLanguage($sLanguageCode)->text(); break; case 'delete': $sSubject = wfMessage('bs-responsibleeditors-mail-subject-re-article-deleted', $sArticleName, $sUsername, $sUserRealName)->inLanguage($sLanguageCode)->text(); $sMessage = wfMessage('bs-responsibleeditors-mail-text-re-article-deleted', $sArticleName, $sUsername, $sUserRealName, $sArticleLink)->inLanguage($sLanguageCode)->text(); break; case 'move': $sSubject = wfMessage('bs-responsibleeditors-mail-subject-re-article-moved', $sArticleName, $sUsername, $sUserRealName)->inLanguage($sLanguageCode)->text(); $sMessage = wfMessage('bs-responsibleeditors-mail-text-re-article-moved', $sArticleName, $aTitles[1]->getPrefixedText(), $sUsername, $sUserRealName, $sArticleLink)->inLanguage($sLanguageCode)->text(); break; default: wfDebugLog('BS::ResponsibleEditors::notifyResponsibleEditors', 'Action "' . $sAction . '" is unknown. No mails sent.'); return; } BsMailer::getInstance('MW')->send($oREUser, $sSubject, $sMessage); } }
/** * Send email notification to next user(s) on review list. * @param BsReviewProcess $oReviewProcess Review process users should be notified for. * @return Status */ public function emailNotifyNextUsers($oReviewProcess) { $aNextUsers = $oReviewProcess->getNextUsers(); // Identify owner $oOwner = User::newFromId($oReviewProcess->getOwner()); $sOwnerRealName = BsCore::getUserDisplayName($oOwner); $oTitle = Title::newFromID($oReviewProcess->pid); $sTitleText = $oTitle->getPrefixedText(); $sLink = BsLinkProvider::makeLink($oTitle, $oTitle->getFullURL()); foreach ($aNextUsers as $aReviewer) { // dirty workaround, sometimes id comes as username if (is_numeric($aReviewer['id'])) { $oReviewer = User::newFromId($aReviewer['id']); } else { $oReviewer = User::newFromName($aReviewer['id']); } if (!BsConfig::getVarForUser('MW::Review::EmailNotifyReviewer', $oReviewer->getName())) { continue; } // Identify reviewer //PW(10.03.2015): Echo notifications $sReviewerMail = $oReviewer->getEmail(); if (!$sReviewerMail) { continue; } $sReviewerLang = $oReviewer->getOption('language'); $sSubject = wfMessage('bs-review-mail-invite-header', $sTitleText)->inLanguage($sReviewerLang)->text(); $sMsg = wfMessage('bs-review-mail-invite-body', $sOwnerRealName, $oOwner->getName(), $sTitleText)->inLanguage($sReviewerLang)->text(); $sMsg .= "\n\n" . $sLink; if ($aReviewer['comment']) { $sMsg .= "\n" . wfMessage('bs-review-mail-comment', $aReviewer['comment'])->inLanguage($sReviewerLang)->text(); } //Send mail to next user in queue BsMailer::getInstance('MW')->send($oReviewer, $sSubject, $sMsg); } }