00001 <?php
00002
00015
00016
00017
00018 class EmailHandler extends ManagerHandler {
00019
00023 function emails() {
00024 parent::validate();
00025 parent::setupTemplate(true);
00026
00027 $rangeInfo = Handler::getRangeInfo('emails');
00028
00029 $journal = &Request::getJournal();
00030 $emailTemplateDao = &DAORegistry::getDAO('EmailTemplateDAO');
00031 $emailTemplates = &$emailTemplateDao->getEmailTemplates(Locale::getLocale(), $journal->getJournalId());
00032 if ($rangeInfo && $rangeInfo->isValid()) {
00033 $emailTemplates =& new ArrayItemIterator($emailTemplates, $rangeInfo->getPage(), $rangeInfo->getCount());
00034 } else {
00035 $emailTemplates =& new ArrayItemIterator($emailTemplates);
00036 }
00037
00038 $templateMgr = &TemplateManager::getManager();
00039 $templateMgr->assign('pageHierarchy', array(array(Request::url(null, 'manager'), 'manager.journalManagement')));
00040 $templateMgr->assign_by_ref('emailTemplates', $emailTemplates);
00041 $templateMgr->assign('helpTopicId','journal.managementPages.emails');
00042 $templateMgr->display('manager/emails/emails.tpl');
00043 }
00044
00045 function createEmail($args = array()) {
00046 EmailHandler::editEmail($args);
00047 }
00048
00053 function editEmail($args = array()) {
00054 parent::validate();
00055 parent::setupTemplate(true);
00056
00057 $templateMgr = &TemplateManager::getManager();
00058 $templateMgr->append('pageHierarchy', array(Request::url(null, 'manager', 'emails'), 'manager.emails'));
00059
00060 $emailKey = !isset($args) || empty($args) ? null : $args[0];
00061
00062 import('manager.form.EmailTemplateForm');
00063
00064 $emailTemplateForm = &new EmailTemplateForm($emailKey);
00065 $emailTemplateForm->initData();
00066 $emailTemplateForm->display();
00067 }
00068
00072 function updateEmail() {
00073 parent::validate();
00074
00075 import('manager.form.EmailTemplateForm');
00076
00077 $emailKey = Request::getUserVar('emailKey');
00078
00079 $emailTemplateForm = &new EmailTemplateForm($emailKey);
00080 $emailTemplateForm->readInputData();
00081
00082 if ($emailTemplateForm->validate()) {
00083 $emailTemplateForm->execute();
00084 Request::redirect(null, null, 'emails');
00085
00086 } else {
00087 parent::setupTemplate(true);
00088 $emailTemplateForm->display();
00089 }
00090 }
00091
00096 function deleteCustomEmail($args) {
00097 parent::validate();
00098 $journal = &Request::getJournal();
00099 $emailKey = array_shift($args);
00100
00101 $emailTemplateDao = &DAORegistry::getDAO('EmailTemplateDAO');
00102 if ($emailTemplateDao->customTemplateExistsByKey($emailKey, $journal->getJournalId())) {
00103 $emailTemplateDao->deleteEmailTemplateByKey($emailKey, $journal->getJournalId());
00104 }
00105
00106 Request::redirect(null, null, 'emails');
00107 }
00108
00113 function resetEmail($args) {
00114 parent::validate();
00115
00116 if (isset($args) && !empty($args)) {
00117 $journal = &Request::getJournal();
00118
00119 $emailTemplateDao = &DAORegistry::getDAO('EmailTemplateDAO');
00120 $emailTemplateDao->deleteEmailTemplateByKey($args[0], $journal->getJournalId());
00121 }
00122
00123 Request::redirect(null, null, 'emails');
00124 }
00125
00129 function resetAllEmails() {
00130 parent::validate();
00131
00132 $journal = &Request::getJournal();
00133 $emailTemplateDao = &DAORegistry::getDAO('EmailTemplateDAO');
00134 $emailTemplateDao->deleteEmailTemplatesByJournal($journal->getJournalId());
00135
00136 Request::redirect(null, null, 'emails');
00137 }
00138
00143 function disableEmail($args) {
00144 parent::validate();
00145
00146 if (isset($args) && !empty($args)) {
00147 $journal = &Request::getJournal();
00148
00149 $emailTemplateDao = &DAORegistry::getDAO('EmailTemplateDAO');
00150 $emailTemplate = $emailTemplateDao->getBaseEmailTemplate($args[0], $journal->getJournalId());
00151
00152 if (isset($emailTemplate)) {
00153 if ($emailTemplate->getCanDisable()) {
00154 $emailTemplate->setEnabled(0);
00155
00156 if ($emailTemplate->getJournalId() == null) {
00157 $emailTemplate->setJournalId($journal->getJournalId());
00158 }
00159
00160 if ($emailTemplate->getEmailId() != null) {
00161 $emailTemplateDao->updateBaseEmailTemplate($emailTemplate);
00162 } else {
00163 $emailTemplateDao->insertBaseEmailTemplate($emailTemplate);
00164 }
00165 }
00166 }
00167 }
00168
00169 Request::redirect(null, null, 'emails');
00170 }
00171
00176 function enableEmail($args) {
00177 parent::validate();
00178
00179 if (isset($args) && !empty($args)) {
00180 $journal = &Request::getJournal();
00181
00182 $emailTemplateDao = &DAORegistry::getDAO('EmailTemplateDAO');
00183 $emailTemplate = $emailTemplateDao->getBaseEmailTemplate($args[0], $journal->getJournalId());
00184
00185 if (isset($emailTemplate)) {
00186 if ($emailTemplate->getCanDisable()) {
00187 $emailTemplate->setEnabled(1);
00188
00189 if ($emailTemplate->getEmailId() != null) {
00190 $emailTemplateDao->updateBaseEmailTemplate($emailTemplate);
00191 } else {
00192 $emailTemplateDao->insertBaseEmailTemplate($emailTemplate);
00193 }
00194 }
00195 }
00196 }
00197
00198 Request::redirect(null, null, 'emails');
00199 }
00200
00201 }
00202
00203 ?>