00001 <?php
00002
00017
00018
00019
00020 import('mail.MailTemplate');
00021 import('article.log.ArticleEmailLogEntry');
00022
00023 class ArticleMailTemplate extends MailTemplate {
00024
00026 var $article;
00027
00029 var $journal;
00030
00032 var $eventType;
00033
00035 var $assocType;
00036
00038 var $assocId;
00039
00049 function ArticleMailTemplate($article, $emailKey = null, $locale = null, $enableAttachments = null, $journal = null) {
00050 parent::MailTemplate($emailKey, $locale, $enableAttachments, $journal);
00051 $this->article = $article;
00052 }
00053
00054 function assignParams($paramArray = array()) {
00055 $article = &$this->article;
00056 $journal = isset($this->journal)?$this->journal:Request::getJournal();
00057
00058 $paramArray['articleTitle'] = strip_tags($article->getArticleTitle());
00059 $paramArray['articleId'] = $article->getArticleId();
00060 $paramArray['journalName'] = strip_tags($journal->getJournalTitle());
00061 $paramArray['sectionName'] = strip_tags($article->getSectionTitle());
00062 $paramArray['articleAbstract'] = strip_tags($article->getArticleAbstract());
00063 $paramArray['authorString'] = strip_tags($article->getAuthorString());
00064
00065 parent::assignParams($paramArray);
00066 }
00067
00071 function send() {
00072 if (parent::send(false)) {
00073 if (!isset($this->skip) || !$this->skip) $this->log();
00074 $user =& Request::getUser();
00075 if ($this->attachmentsEnabled) $this->_clearAttachments($user->getUserId());
00076 return true;
00077
00078 } else {
00079 return false;
00080 }
00081 }
00082
00086 function sendWithParams($paramArray) {
00087 $savedSubject = $this->getSubject();
00088 $savedBody = $this->getBody();
00089
00090 $this->assignParams($paramArray);
00091
00092 $ret = $this->send();
00093
00094 $this->setSubject($savedSubject);
00095 $this->setBody($savedBody);
00096
00097 return $ret;
00098 }
00099
00106 function setAssoc($eventType, $assocType, $assocId) {
00107 $this->eventType = $eventType;
00108 $this->assocType = $assocType;
00109 $this->assocId = $assocId;
00110 }
00111
00116 function setJournal($journal) {
00117 $this->journal = $journal;
00118 }
00119
00123 function log() {
00124 import('article.log.ArticleEmailLogEntry');
00125 import('article.log.ArticleLog');
00126 $entry = &new ArticleEmailLogEntry();
00127 $article = &$this->article;
00128
00129
00130 $entry->setEventType($this->eventType);
00131 $entry->setAssocType($this->assocType);
00132 $entry->setAssocId($this->assocId);
00133
00134
00135 $entry->setSubject($this->getSubject());
00136 $entry->setBody($this->getBody());
00137 $entry->setFrom($this->getFromString(false));
00138 $entry->setRecipients($this->getRecipientString());
00139 $entry->setCcs($this->getCcString());
00140 $entry->setBccs($this->getBccString());
00141
00142
00143 $logEntryId = ArticleLog::logEmailEntry($article->getArticleId(), $entry);
00144
00145
00146 import('file.ArticleFileManager');
00147 $articleFileManager =& new ArticleFileManager($article->getArticleId());
00148 foreach ($this->getAttachmentFiles() as $attachment) {
00149 $articleFileManager->temporaryFileToArticleFile(
00150 $attachment,
00151 ARTICLE_FILE_ATTACHMENT,
00152 $logEntryId
00153 );
00154 }
00155 }
00156
00157 function ccAssignedEditors($articleId) {
00158 $returner = array();
00159 $editAssignmentDao =& DAORegistry::getDAO('EditAssignmentDAO');
00160 $editAssignments =& $editAssignmentDao->getEditorAssignmentsByArticleId($articleId);
00161 while ($editAssignment =& $editAssignments->next()) {
00162 $this->addCc($editAssignment->getEditorEmail(), $editAssignment->getEditorFullName());
00163 $returner[] =& $editAssignment;
00164 unset($editAssignment);
00165 }
00166 return $returner;
00167 }
00168
00169 function toAssignedReviewingSectionEditors($articleId) {
00170 $returner = array();
00171 $editAssignmentDao =& DAORegistry::getDAO('EditAssignmentDAO');
00172 $editAssignments =& $editAssignmentDao->getReviewingSectionEditorAssignmentsByArticleId($articleId);
00173 while ($editAssignment =& $editAssignments->next()) {
00174 $this->addRecipient($editAssignment->getEditorEmail(), $editAssignment->getEditorFullName());
00175 $returner[] =& $editAssignment;
00176 unset($editAssignment);
00177 }
00178 return $returner;
00179 }
00180
00181 function toAssignedEditingSectionEditors($articleId) {
00182 $returner = array();
00183 $editAssignmentDao =& DAORegistry::getDAO('EditAssignmentDAO');
00184 $editAssignments =& $editAssignmentDao->getEditingSectionEditorAssignmentsByArticleId($articleId);
00185 while ($editAssignment =& $editAssignments->next()) {
00186 $this->addRecipient($editAssignment->getEditorEmail(), $editAssignment->getEditorFullName());
00187 $returner[] =& $editAssignment;
00188 unset($editAssignment);
00189 }
00190 return $returner;
00191 }
00192
00193 function ccAssignedReviewingSectionEditors($articleId) {
00194 $returner = array();
00195 $editAssignmentDao =& DAORegistry::getDAO('EditAssignmentDAO');
00196 $editAssignments =& $editAssignmentDao->getReviewingSectionEditorAssignmentsByArticleId($articleId);
00197 while ($editAssignment =& $editAssignments->next()) {
00198 $this->addCc($editAssignment->getEditorEmail(), $editAssignment->getEditorFullName());
00199 $returner[] =& $editAssignment;
00200 unset($editAssignment);
00201 }
00202 return $returner;
00203 }
00204
00205 function ccAssignedEditingSectionEditors($articleId) {
00206 $returner = array();
00207 $editAssignmentDao =& DAORegistry::getDAO('EditAssignmentDAO');
00208 $editAssignments =& $editAssignmentDao->getEditingSectionEditorAssignmentsByArticleId($articleId);
00209 while ($editAssignment =& $editAssignments->next()) {
00210 $this->addCc($editAssignment->getEditorEmail(), $editAssignment->getEditorFullName());
00211 $returner[] =& $editAssignment;
00212 unset($editAssignment);
00213 }
00214 return $returner;
00215 }
00216 }
00217
00218 ?>