/**
  * Load and fetch the announcement form in read-only mode.
  * @param $args array
  * @param $request Request
  * @return string
  */
 function moreInformation($args, $request)
 {
     $announcementId = (int) $request->getUserVar('announcementId');
     $context = $request->getContext();
     $contextId = $context->getId();
     import('lib.pkp.controllers.grid.announcements.form.AnnouncementForm');
     $announcementForm = new AnnouncementForm($contextId, $announcementId, true);
     $announcementForm->initData($args, $request);
     $json = new JSONMessage(true, $announcementForm->fetch($request));
     return $json->getString();
 }
 /**
  * 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');
     }
 }