baseline
[omp.pkp.sfu.ca.git] / pages / manager / EmailHandler.inc.php
blob26f1975fd368aadfb6ead60a66be79e1530e960f
1 <?php
3 /**
4 * @file EmailHandler.inc.php
6 * Copyright (c) 2003-2008 John Willinsky
7 * Distributed under the GNU GPL v2. For full terms see the file docs/COPYING.
9 * @class EmailHandler
10 * @ingroup pages_manager
12 * @brief Handle requests for email management functions.
15 // $Id: EmailHandler.inc.php,v 1.10 2009/09/23 19:34:31 asmecher Exp $
17 import('pages.manager.ManagerHandler');
19 class EmailHandler extends ManagerHandler {
21 /**
22 * Constructor
23 */
24 function EmailHandler() {
25 parent::ManagerHandler();
28 /**
29 * Display a list of the emails within the current press.
31 function emails() {
32 $this->validate();
33 $this->setupTemplate(true);
35 $rangeInfo = Handler::getRangeInfo('emails');
37 $press =& Request::getPress();
38 $emailTemplateDao =& DAORegistry::getDAO('EmailTemplateDAO');
39 $emailTemplates =& $emailTemplateDao->getEmailTemplates(Locale::getLocale(), $press->getId());
41 import('core.ArrayItemIterator');
42 $emailTemplates =& ArrayItemIterator::fromRangeInfo($emailTemplates, $rangeInfo);
44 $templateMgr =& TemplateManager::getManager();
45 $templateMgr->assign('pageHierarchy', array(array(Request::url(null, 'manager'), 'manager.pressManagement')));
46 $templateMgr->assign_by_ref('emailTemplates', $emailTemplates);
47 $templateMgr->assign('helpTopicId','press.managementPages.emails');
48 $templateMgr->display('manager/emails/emails.tpl');
51 function createEmail($args = array()) {
52 EmailHandler::editEmail($args);
55 /**
56 * Display form to create/edit an email.
57 * @param $args array optional, if set the first parameter is the key of the email template to edit
59 function editEmail($args = array()) {
60 $this->validate();
61 $this->setupTemplate(true);
63 $press =& Request::getPress();
64 $templateMgr =& TemplateManager::getManager();
65 $templateMgr->append('pageHierarchy', array(Request::url(null, 'manager', 'emails'), 'manager.emails'));
67 $emailKey = !isset($args) || empty($args) ? null : $args[0];
69 import('manager.form.EmailTemplateForm');
71 $emailTemplateForm = new EmailTemplateForm($emailKey, $press);
72 $emailTemplateForm->initData();
73 $emailTemplateForm->display();
76 /**
77 * Save changes to an email.
79 function updateEmail() {
80 $this->validate();
81 $this->setupTemplate(true);
82 $press =& Request::getPress();
84 import('manager.form.EmailTemplateForm');
86 $emailKey = Request::getUserVar('emailKey');
88 $emailTemplateForm = new EmailTemplateForm($emailKey, $press);
89 $emailTemplateForm->readInputData();
91 if ($emailTemplateForm->validate()) {
92 $emailTemplateForm->execute();
93 Request::redirect(null, null, 'emails');
95 } else {
96 $emailTemplateForm->display();
101 * Delete a custom email.
102 * @param $args array first parameter is the key of the email to delete
104 function deleteCustomEmail($args) {
105 $this->validate();
106 $press =& Request::getPress();
107 $emailKey = array_shift($args);
109 $emailTemplateDao =& DAORegistry::getDAO('EmailTemplateDAO');
110 if ($emailTemplateDao->customTemplateExistsByKey($emailKey, $press->getId())) {
111 $emailTemplateDao->deleteEmailTemplateByKey($emailKey, $press->getId());
114 Request::redirect(null, null, 'emails');
118 * Reset an email to default.
119 * @param $args array first parameter is the key of the email to reset
121 function resetEmail($args) {
122 $this->validate();
124 if (isset($args) && !empty($args)) {
125 $press =& Request::getPress();
127 $emailTemplateDao =& DAORegistry::getDAO('EmailTemplateDAO');
128 $emailTemplateDao->deleteEmailTemplateByKey($args[0], $press->getId());
131 Request::redirect(null, null, 'emails');
135 * resets all email templates associated with the press.
137 function resetAllEmails() {
138 $this->validate();
140 $press =& Request::getPress();
141 $emailTemplateDao =& DAORegistry::getDAO('EmailTemplateDAO');
142 $emailTemplateDao->deleteEmailTemplatesByPress($press->getId());
144 Request::redirect(null, null, 'emails');
148 * disables an email template.
149 * @param $args array first parameter is the key of the email to disable
151 function disableEmail($args) {
152 $this->validate();
154 if (isset($args) && !empty($args)) {
155 $press =& Request::getPress();
157 $emailTemplateDao =& DAORegistry::getDAO('EmailTemplateDAO');
158 $emailTemplate = $emailTemplateDao->getBaseEmailTemplate($args[0], $press->getId());
160 if (isset($emailTemplate)) {
161 if ($emailTemplate->getCanDisable()) {
162 $emailTemplate->setEnabled(0);
164 if ($emailTemplate->getPressId() == null) {
165 $emailTemplate->setPressId($press->getId());
168 if ($emailTemplate->getEmailId() != null) {
169 $emailTemplateDao->updateBaseEmailTemplate($emailTemplate);
170 } else {
171 $emailTemplateDao->insertBaseEmailTemplate($emailTemplate);
177 Request::redirect(null, null, 'emails');
181 * enables an email template.
182 * @param $args array first parameter is the key of the email to enable
184 function enableEmail($args) {
185 $this->validate();
187 if (isset($args) && !empty($args)) {
188 $press =& Request::getPress();
190 $emailTemplateDao =& DAORegistry::getDAO('EmailTemplateDAO');
191 $emailTemplate = $emailTemplateDao->getBaseEmailTemplate($args[0], $press->getId());
193 if (isset($emailTemplate)) {
194 if ($emailTemplate->getCanDisable()) {
195 $emailTemplate->setEnabled(1);
197 if ($emailTemplate->getEmailId() != null) {
198 $emailTemplateDao->updateBaseEmailTemplate($emailTemplate);
199 } else {
200 $emailTemplateDao->insertBaseEmailTemplate($emailTemplate);
206 Request::redirect(null, null, 'emails');