Hi @vvucic ,
There are some common variables shared by all email templates, and then each template adds some of its own more specific ones. For example, the site-wide variables are defined here…
/**
* Assigns values to e-mail parameters.
* @param $paramArray array
* @return void
*/
function assignParams($paramArray = array()) {
// Add commonly-used variables to the list
if (isset($this->journal)) {
// FIXME Include affiliation, title, etc. in signature?
$paramArray['journalName'] = $this->journal->getLocalizedTitle();
$paramArray['principalContactSignature'] = $this->journal->getSetting('contactName');
} else {
$site =& Request::getSite();
$paramArray['principalContactSignature'] = $site->getLocalizedContactName();
}
if (!isset($paramArray['journalUrl'])) $paramArray['journalUrl'] = Request::url(Request::getRequestedJournalPath());
return parent::assignParams($paramArray);
}
/**
…and more are added for emails referring to a particular article over here…
*/
function ArticleMailTemplate($article, $emailKey = null, $locale = null, $enableAttachments = null, $journal = null, $includeSignature = true, $ignorePostedData = false) {
parent::MailTemplate($emailKey, $locale, $enableAttachments, $journal, $includeSignature, $ignorePostedData);
$this->article = $article;
}
function assignParams($paramArray = array()) {
$article =& $this->article;
$journal = isset($this->journal)?$this->journal:Request::getJournal();
$paramArray['articleTitle'] = strip_tags($article->getLocalizedTitle());
$paramArray['articleId'] = $article->getId();
$paramArray['journalName'] = strip_tags($journal->getLocalizedTitle());
$paramArray['sectionName'] = strip_tags($article->getSectionTitle());
$paramArray['articleAbstract'] = PKPString::html2text($article->getLocalizedAbstract());
$paramArray['authorString'] = strip_tags($article->getAuthorString());
parent::assignParams($paramArray);
}
/**
…and then specific mail templates add their own, e.g. this for the REVIEW_REQUEST
set of emails:
if ($reviewAssignment->getDateDue() != null) {
$reviewDueDate = strftime(Config::getVar('general', 'date_format_short'), strtotime($reviewAssignment->getDateDue()));
} else {
$numWeeks = max((int) $journal->getSetting('numWeeksPerReview'), 2);
$reviewDueDate = strftime(Config::getVar('general', 'date_format_short'), strtotime('+' . $numWeeks . ' week'));
}
$submissionUrl = $request->url(null, 'reviewer', 'submission', $reviewId, $reviewerAccessKeysEnabled?array('key' => 'ACCESS_KEY'):array());
$paramArray = array(
'reviewerName' => $reviewer->getFullName(),
'weekLaterDate' => $weekLaterDate,
'reviewDueDate' => $reviewDueDate,
'reviewerUsername' => $reviewer->getUsername(),
'reviewerPassword' => $reviewer->getPassword(),
'editorialContactSignature' => $user->getContactSignature(),
'reviewGuidelines' => PKPString::html2text($journal->getLocalizedSetting('reviewGuidelines')),
'submissionReviewUrl' => $submissionUrl,
'abstractTermIfEnabled' => ($sectionEditorSubmission->getLocalizedAbstract() == ''?'':__('article.abstract')),
'passwordResetUrl' => $request->url(null, 'login', 'resetPassword', $reviewer->getUsername(), array('confirm' => Validation::generatePasswordResetHash($reviewer->getId())))
Regards,
Alec Smecher
Public Knowledge Project Team
2 Likes