コード例 #1
0
 /**
  * Save changes to a review form element.
  */
 function updateReviewFormElement()
 {
     parent::validate();
     $reviewFormId = Request::getUserVar('reviewFormId') === null ? null : (int) Request::getUserVar('reviewFormId');
     $reviewFormElementId = Request::getUserVar('reviewFormElementId') === null ? null : (int) Request::getUserVar('reviewFormElementId');
     $journal =& Request::getJournal();
     $reviewFormDao =& DAORegistry::getDAO('ReviewFormDAO');
     $reviewFormElementDao =& DAORegistry::getDAO('ReviewFormElementDAO');
     if (!$reviewFormDao->unusedReviewFormExists($reviewFormId, $journal->getJournalId()) || $reviewFormElementId != null && !$reviewFormElementDao->reviewFormElementExists($reviewFormElementId, $reviewFormId)) {
         Request::redirect(null, null, 'reviewFormElements', array($reviewFormId));
     }
     import('manager.form.ReviewFormElementForm');
     $reviewFormElementForm =& new ReviewFormElementForm($reviewFormId, $reviewFormElementId);
     $reviewFormElementForm->readInputData();
     $formLocale = $reviewFormElementForm->getFormLocale();
     // Reorder response items
     $response = $reviewFormElementForm->getData('possibleResponses');
     if (isset($response[$formLocale]) && is_array($response[$formLocale])) {
         usort($response[$formLocale], create_function('$a,$b', 'return $a[\'order\'] == $b[\'order\'] ? 0 : ($a[\'order\'] < $b[\'order\'] ? -1 : 1);'));
     }
     $reviewFormElementForm->setData('possibleResponses', $response);
     if (Request::getUserVar('addResponse')) {
         // Add a response item
         $editData = true;
         $response = $reviewFormElementForm->getData('possibleResponses');
         if (!isset($response[$formLocale]) || !is_array($response[$formLocale])) {
             $response[$formLocale] = array();
             $lastOrder = 0;
         } else {
             $lastOrder = $response[$formLocale][count($response[$formLocale]) - 1]['order'];
         }
         array_push($response[$formLocale], array('order' => $lastOrder + 1));
         $reviewFormElementForm->setData('possibleResponses', $response);
     } else {
         if (($delResponse = Request::getUserVar('delResponse')) && count($delResponse) == 1) {
             // Delete a response item
             $editData = true;
             list($delResponse) = array_keys($delResponse);
             $delResponse = (int) $delResponse;
             $response = $reviewFormElementForm->getData('possibleResponses');
             if (!isset($response[$formLocale])) {
                 $response[$formLocale] = array();
             }
             array_splice($response[$formLocale], $delResponse, 1);
             $reviewFormElementForm->setData('possibleResponses', $response);
         }
     }
     if (!isset($editData) && $reviewFormElementForm->validate()) {
         $reviewFormElementForm->execute();
         Request::redirect(null, null, 'reviewFormElements', array($reviewFormId));
     } else {
         $journal =& Request::getJournal();
         $reviewFormDao =& DAORegistry::getDAO('ReviewFormDAO');
         $reviewForm =& $reviewFormDao->getReviewForm($reviewFormId, $journal->getJournalId());
         ReviewFormHandler::setupTemplate(true, $reviewForm);
         $templateMgr =& TemplateManager::getManager();
         if ($reviewFormElementId == null) {
             $templateMgr->assign('pageTitle', 'manager.reviewFormElements.create');
         } else {
             $templateMgr->assign('pageTitle', 'manager.reviewFormElements.edit');
         }
         $reviewFormElementForm->display();
     }
 }
コード例 #2
0
ファイル: ManagerHandler.inc.php プロジェクト: Jouper/jouper
 function copyReviewFormElement()
 {
     import('pages.manager.ReviewFormHandler');
     ReviewFormHandler::copyReviewFormElement();
 }