• Main Page
  • Modules
  • Classes
  • Files
  • File List

controllers/grid/users/reviewer/form/ReviewReminderForm.inc.php

00001 <?php
00002 
00015 import('lib.pkp.classes.form.Form');
00016 
00017 class ReviewReminderForm extends Form {
00019    var $_reviewAssignment;
00020 
00024    function ReviewReminderForm(&$reviewAssignment) {
00025       parent::Form('controllers/grid/users/reviewer/form/reviewReminderForm.tpl');
00026       $this->_reviewAssignment =& $reviewAssignment;
00027 
00028       // Validation checks for this form
00029       $this->addCheck(new FormValidatorPost($this));
00030    }
00031 
00032    //
00033    // Getters and Setters
00034    //
00039    function &getReviewAssignment() {
00040       return $this->_reviewAssignment;
00041    }
00042 
00043 
00044    //
00045    // Overridden template methods
00046    //
00052    function initData($args, &$request) {
00053       $userDao =& DAORegistry::getDAO('UserDAO');
00054       $user =& $request->getUser();
00055       $press =& $request->getPress();
00056 
00057       $reviewAssignment =& $this->getReviewAssignment();
00058       $reviewerId = $reviewAssignment->getReviewerId();
00059       $reviewer =& $userDao->getById($reviewerId);
00060 
00061       $monographDao =& DAORegistry::getDAO('MonographDAO');
00062       $monograph =& $monographDao->getById($reviewAssignment->getSubmissionId());
00063 
00064       import('classes.mail.MonographMailTemplate');
00065       $email = new MonographMailTemplate($monograph, 'REVIEW_REMIND');
00066 
00067       // Format the review due date
00068       $reviewDueDate = strtotime($reviewAssignment->getDateDue());
00069       $dateFormatShort = Config::getVar('general', 'date_format_short');
00070       if ($reviewDueDate == -1) $reviewDueDate = $dateFormatShort; // Default to something human-readable if no date specified
00071       else $reviewDueDate = strftime($dateFormatShort, $reviewDueDate);
00072 
00073       $dispatcher =& $request->getDispatcher();
00074       $paramArray = array(
00075          'reviewerName' => $reviewer->getFullName(),
00076          'reviewDueDate' => $reviewDueDate,
00077          'editorialContactSignature' => $user->getContactSignature(),
00078          'reviewerUserName' => $reviewer->getUsername(),
00079          'passwordResetUrl' => $dispatcher->url($request, ROUTE_PAGE, null, 'login', 'resetPassword', $reviewer->getUsername(), array('confirm' => Validation::generatePasswordResetHash($reviewer->getId()))),
00080          'submissionReviewUrl' => $dispatcher->url($request, ROUTE_PAGE, null, 'reviewer', 'submission', null, array('monographId' => $reviewAssignment->getSubmissionId()))
00081       );
00082       $email->assignParams($paramArray);
00083 
00084       $this->setData('monographId', $monograph->getId());
00085       $this->setData('stageId', $reviewAssignment->getStageId());
00086       $this->setData('reviewAssignmentId', $reviewAssignment->getId());
00087       $this->setData('reviewAssignment', $reviewAssignment);
00088       $this->setData('reviewerName', $reviewer->getFullName() . ' <' . $reviewer->getEmail() . '>');
00089       $this->setData('message', $email->getBody() . "\n" . $press->getSetting('emailSignature'));
00090    }
00091 
00096    function readInputData() {
00097       $this->readUserVars(array('message'));
00098 
00099    }
00100 
00106    function execute($args, &$request) {
00107       $userDao =& DAORegistry::getDAO('UserDAO');
00108       $monographDao =& DAORegistry::getDAO('MonographDAO');
00109 
00110       $reviewAssignment =& $this->getReviewAssignment();
00111       $reviewerId = $reviewAssignment->getReviewerId();
00112       $reviewer =& $userDao->getById($reviewerId);
00113       $monograph =& $monographDao->getById($reviewAssignment->getSubmissionId());
00114 
00115       import('classes.mail.MonographMailTemplate');
00116       $email = new MonographMailTemplate($monograph, 'REVIEW_REMIND', null, null, null, false);
00117 
00118       $email->addRecipient($reviewer->getEmail(), $reviewer->getFullName());
00119       $email->setBody($this->getData('message'));
00120       $email->send($request);
00121 
00122       // update the ReviewAssignment with the reminded and modified dates
00123       $reviewAssignment->setDateReminded(Core::getCurrentDate());
00124       $reviewAssignment->stampModified();
00125       $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO');
00126       $reviewAssignmentDao->updateObject($reviewAssignment);
00127    }
00128 }
00129 
00130 ?>

Generated on Mon Sep 17 2012 13:58:56 for Open Monograph Press by  doxygen 1.7.1