/** * Save an edited/inserted announcement. * @param $args array * @param $request PKPRequest * @return JSONMessage JSON object */ function updateAnnouncement($args, $request) { // Identify the announcement Id. $announcementId = (int) $request->getUserVar('announcementId'); $context = $request->getContext(); $contextId = $context->getId(); // Form handling. $announcementForm = new AnnouncementForm($contextId, $announcementId); $announcementForm->readInputData(); if ($announcementForm->validate()) { if ($announcementId) { // Successful edit of an existing announcement. $notificationLocaleKey = 'notification.editedAnnouncement'; } else { // Successful added a new announcement. $notificationLocaleKey = 'notification.addedAnnouncement'; } $announcementId = $announcementForm->execute($request); // Record the notification to user. $notificationManager = new NotificationManager(); $user = $request->getUser(); $notificationManager->createTrivialNotification($user->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => __($notificationLocaleKey))); // Prepare the grid row data. return DAO::getDataChangedEvent($announcementId); } else { return new JSONMessage(false); } }
/** * Save changes to an announcement. * @param $request PKPRequest */ function updateAnnouncement($args, &$request) { // FIXME: Remove call to validate() when all ManagerHandler implementations // (across all apps) have been migrated to the authorize() authorization approach. $this->validate(); $this->setupTemplate($request); $router =& $request->getRouter(); import('classes.manager.form.AnnouncementForm'); $announcementId = $request->getUserVar('announcementId') == null ? null : (int) $request->getUserVar('announcementId'); $announcementDao =& DAORegistry::getDAO('AnnouncementDAO'); if ($this->_announcementIsValid($request, $announcementId)) { $contextId = $this->getContextId($request); if (checkPhpVersion('5.0.0')) { // WARNING: This form needs $this in constructor $announcementForm = new AnnouncementForm($contextId, $announcementId); } else { $announcementForm =& new AnnouncementForm($contextId, $announcementId); } $announcementForm->readInputData(); if ($announcementForm->validate()) { $announcementForm->execute($request); if ($request->getUserVar('createAnother')) { $request->redirectUrl($router->url($request, null, null, 'createAnnouncement')); } else { $request->redirectUrl($router->url($request, null, null, 'announcements')); } } else { $templateMgr =& TemplateManager::getManager(); $templateMgr->append('pageHierarchy', array($request->url(null, null, 'manager', 'announcements'), 'manager.announcements')); if ($announcementId == null) { $templateMgr->assign('announcementTitle', 'manager.announcements.createTitle'); } else { $templateMgr->assign('announcementTitle', 'manager.announcements.editTitle'); } $announcementForm->display(); } } else { $request->redirectUrl($router->url($request, null, null, 'announcements')); } }
/** * Save changes to an announcement. */ function updateAnnouncement() { $this->validate(); $this->setupTemplate(); import('manager.form.AnnouncementForm'); $announcementId = Request::getUserVar('announcementId') == null ? null : (int) Request::getUserVar('announcementId'); $announcementDao =& DAORegistry::getDAO('AnnouncementDAO'); if ($this->_announcementIsValid($announcementId)) { if (checkPhpVersion('5.0.0')) { // WARNING: This form needs $this in constructor $announcementForm = new AnnouncementForm($announcementId); } else { $announcementForm =& new AnnouncementForm($announcementId); } $announcementForm->readInputData(); if ($announcementForm->validate()) { $announcementForm->execute(); if (Request::getUserVar('createAnother')) { PKPRequest::redirect(null, null, 'createAnnouncement'); } else { PKPRequest::redirect(null, null, 'announcements'); } } else { $templateMgr =& TemplateManager::getManager(); $templateMgr->append('pageHierarchy', array(Request::url(null, null, 'manager', 'announcements'), 'manager.announcements')); if ($announcementId == null) { $templateMgr->assign('announcementTitle', 'manager.announcements.createTitle'); } else { $templateMgr->assign('announcementTitle', 'manager.announcements.editTitle'); } $announcementForm->display(); } } else { PKPRequest::redirect(null, null, 'announcements'); } }