00001 <?php
00002
00015
00016
00017
00018 class AnnouncementHandler extends ManagerHandler {
00019
00020 function index() {
00021 AnnouncementHandler::announcements();
00022 }
00023
00027 function announcements() {
00028 parent::validate();
00029 AnnouncementHandler::setupTemplate();
00030
00031 $journal = &Request::getJournal();
00032 $rangeInfo = &Handler::getRangeInfo('announcements');
00033 $announcementDao = &DAORegistry::getDAO('AnnouncementDAO');
00034 $announcements = &$announcementDao->getAnnouncementsByJournalId($journal->getJournalId(), $rangeInfo);
00035
00036 $templateMgr = &TemplateManager::getManager();
00037 $templateMgr->assign('announcements', $announcements);
00038 $templateMgr->assign('helpTopicId', 'journal.managementPages.announcements');
00039 $templateMgr->display('manager/announcement/announcements.tpl');
00040 }
00041
00046 function deleteAnnouncement($args) {
00047 parent::validate();
00048
00049 if (isset($args) && !empty($args)) {
00050 $journal = &Request::getJournal();
00051 $announcementId = (int) $args[0];
00052
00053 $announcementDao = &DAORegistry::getDAO('AnnouncementDAO');
00054
00055
00056 if ($announcementDao->getAnnouncementJournalId($announcementId) == $journal->getJournalId()) {
00057 $announcementDao->deleteAnnouncementById($announcementId);
00058 }
00059 }
00060
00061 Request::redirect(null, null, 'announcements');
00062 }
00063
00068 function editAnnouncement($args = array()) {
00069 parent::validate();
00070 AnnouncementHandler::setupTemplate();
00071
00072 $journal = &Request::getJournal();
00073 $announcementId = !isset($args) || empty($args) ? null : (int) $args[0];
00074 $announcementDao = &DAORegistry::getDAO('AnnouncementDAO');
00075
00076
00077 if (($announcementId != null && $announcementDao->getAnnouncementJournalId($announcementId) == $journal->getJournalId()) || ($announcementId == null)) {
00078 import('manager.form.AnnouncementForm');
00079
00080 $templateMgr = &TemplateManager::getManager();
00081 $templateMgr->append('pageHierarchy', array(Request::url(null, 'manager', 'announcements'), 'manager.announcements'));
00082
00083 if ($announcementId == null) {
00084 $templateMgr->assign('announcementTitle', 'manager.announcements.createTitle');
00085 } else {
00086 $templateMgr->assign('announcementTitle', 'manager.announcements.editTitle');
00087 }
00088
00089 $announcementForm = &new AnnouncementForm($announcementId);
00090 if ($announcementForm->isLocaleResubmit()) {
00091 $announcementForm->readInputData();
00092 } else {
00093 $announcementForm->initData();
00094 }
00095 $announcementForm->display();
00096
00097 } else {
00098 Request::redirect(null, null, 'announcements');
00099 }
00100 }
00101
00105 function createAnnouncement() {
00106 AnnouncementHandler::editAnnouncement();
00107 }
00108
00112 function updateAnnouncement() {
00113 parent::validate();
00114
00115 import('manager.form.AnnouncementForm');
00116
00117 $journal = &Request::getJournal();
00118 $announcementId = Request::getUserVar('announcementId') == null ? null : (int) Request::getUserVar('announcementId');
00119 $announcementDao = &DAORegistry::getDAO('AnnouncementDAO');
00120
00121 if (($announcementId != null && $announcementDao->getAnnouncementJournalId($announcementId) == $journal->getJournalId()) || $announcementId == null) {
00122
00123 $announcementForm = &new AnnouncementForm($announcementId);
00124 $announcementForm->readInputData();
00125
00126 if ($announcementForm->validate()) {
00127 $announcementForm->execute();
00128
00129 if (Request::getUserVar('createAnother')) {
00130 Request::redirect(null, null, 'createAnnouncement');
00131 } else {
00132 Request::redirect(null, null, 'announcements');
00133 }
00134
00135 } else {
00136 AnnouncementHandler::setupTemplate();
00137
00138 $templateMgr = &TemplateManager::getManager();
00139 $templateMgr->append('pageHierarchy', array(Request::url(null, 'manager', 'announcements'), 'manager.announcements'));
00140
00141 if ($announcementId == null) {
00142 $templateMgr->assign('announcementTitle', 'manager.announcements.createTitle');
00143 } else {
00144 $templateMgr->assign('announcementTitle', 'manager.announcements.editTitle');
00145 }
00146
00147 $announcementForm->display();
00148 }
00149
00150 } else {
00151 Request::redirect(null, null, 'announcements');
00152 }
00153 }
00154
00158 function announcementTypes() {
00159 parent::validate();
00160 AnnouncementHandler::setupTemplate(true);
00161
00162 $journal = &Request::getJournal();
00163 $rangeInfo = &Handler::getRangeInfo('announcementTypes');
00164 $announcementTypeDao = &DAORegistry::getDAO('AnnouncementTypeDAO');
00165 $announcementTypes = &$announcementTypeDao->getAnnouncementTypesByJournalId($journal->getJournalId(), $rangeInfo);
00166
00167 $templateMgr = &TemplateManager::getManager();
00168 $templateMgr->assign('announcementTypes', $announcementTypes);
00169 $templateMgr->assign('helpTopicId', 'journal.managementPages.announcements');
00170 $templateMgr->display('manager/announcement/announcementTypes.tpl');
00171 }
00172
00177 function deleteAnnouncementType($args) {
00178 parent::validate();
00179
00180 if (isset($args) && !empty($args)) {
00181 $journal = &Request::getJournal();
00182 $typeId = (int) $args[0];
00183
00184 $announcementTypeDao = &DAORegistry::getDAO('AnnouncementTypeDAO');
00185
00186
00187 if ($announcementTypeDao->getAnnouncementTypeJournalId($typeId) == $journal->getJournalId()) {
00188 $announcementTypeDao->deleteAnnouncementTypeById($typeId);
00189 }
00190 }
00191
00192 Request::redirect(null, null, 'announcementTypes');
00193 }
00194
00199 function editAnnouncementType($args = array()) {
00200 parent::validate();
00201 AnnouncementHandler::setupTemplate(true);
00202
00203 $journal = &Request::getJournal();
00204 $typeId = !isset($args) || empty($args) ? null : (int) $args[0];
00205 $announcementTypeDao = &DAORegistry::getDAO('AnnouncementTypeDAO');
00206
00207
00208 if (($typeId != null && $announcementTypeDao->getAnnouncementTypeJournalId($typeId) == $journal->getJournalId()) || ($typeId == null)) {
00209 import('manager.form.AnnouncementTypeForm');
00210
00211 $templateMgr = &TemplateManager::getManager();
00212 $templateMgr->append('pageHierarchy', array(Request::url(null, 'manager', 'announcementTypes'), 'manager.announcementTypes'));
00213
00214 if ($typeId == null) {
00215 $templateMgr->assign('announcementTypeTitle', 'manager.announcementTypes.createTitle');
00216 } else {
00217 $templateMgr->assign('announcementTypeTitle', 'manager.announcementTypes.editTitle');
00218 }
00219
00220 $announcementTypeForm = &new AnnouncementTypeForm($typeId);
00221 if ($announcementTypeForm->isLocaleResubmit()) {
00222 $announcementTypeForm->readInputData();
00223 } else {
00224 $announcementTypeForm->initData();
00225 }
00226 $announcementTypeForm->display();
00227
00228 } else {
00229 Request::redirect(null, null, 'announcementTypes');
00230 }
00231 }
00232
00236 function createAnnouncementType() {
00237 AnnouncementHandler::editAnnouncementType();
00238 }
00239
00243 function updateAnnouncementType() {
00244 parent::validate();
00245
00246 import('manager.form.AnnouncementTypeForm');
00247
00248 $journal = &Request::getJournal();
00249 $typeId = Request::getUserVar('typeId') == null ? null : (int) Request::getUserVar('typeId');
00250 $announcementTypeDao = &DAORegistry::getDAO('AnnouncementTypeDAO');
00251
00252 if (($typeId != null && $announcementTypeDao->getAnnouncementTypeJournalId($typeId) == $journal->getJournalId()) || $typeId == null) {
00253
00254 $announcementTypeForm = &new AnnouncementTypeForm($typeId);
00255 $announcementTypeForm->readInputData();
00256
00257 if ($announcementTypeForm->validate()) {
00258 $announcementTypeForm->execute();
00259
00260 if (Request::getUserVar('createAnother')) {
00261 Request::redirect(null, null, 'createAnnouncementType');
00262 } else {
00263 Request::redirect(null, null, 'announcementTypes');
00264 }
00265
00266 } else {
00267 AnnouncementHandler::setupTemplate(true);
00268
00269 $templateMgr = &TemplateManager::getManager();
00270 $templateMgr->append('pageHierarchy', array(Request::url(null, 'manager', 'announcementTypes'), 'manager.announcementTypes'));
00271
00272 if ($typeId == null) {
00273 $templateMgr->assign('announcementTypeTitle', 'manager.announcementTypes.createTitle');
00274 } else {
00275 $templateMgr->assign('announcementTypeTitle', 'manager.announcementTypes.editTitle');
00276 }
00277
00278 $announcementTypeForm->display();
00279 }
00280
00281 } else {
00282 Request::redirect(null, null, 'announcementTypes');
00283 }
00284 }
00285
00286 function setupTemplate($subclass = false) {
00287 parent::setupTemplate(true);
00288 if ($subclass) {
00289 $templateMgr = &TemplateManager::getManager();
00290 $templateMgr->append('pageHierarchy', array(Request::url(null, 'manager', 'announcements'), 'manager.announcements'));
00291 }
00292 }
00293 }
00294
00295 ?>