/** * Save review form element. */ function execute() { $reviewFormElementDao =& DAORegistry::getDAO('ReviewFormElementDAO'); if ($this->reviewFormElementId != null) { $reviewFormElement =& $reviewFormElementDao->getReviewFormElement($this->reviewFormElementId); } if (!isset($reviewFormElement)) { $reviewFormElement = new ReviewFormElement(); $reviewFormElement->setReviewFormId($this->reviewFormId); $reviewFormElement->setSequence(REALLY_BIG_NUMBER); } $reviewFormElement->setQuestion($this->getData('question'), null); // Localized $reviewFormElement->setRequired($this->getData('required') ? 1 : 0); $reviewFormElement->setIncluded($this->getData('included') ? 1 : 0); $reviewFormElement->setElementType($this->getData('elementType')); if (in_array($this->getData('elementType'), ReviewFormElement::getMultipleResponsesElementTypes())) { $reviewFormElement->setPossibleResponses($this->getData('possibleResponses'), null); // Localized } else { $reviewFormElement->setPossibleResponses(null, null); } if ($reviewFormElement->getId() != null) { $reviewFormElementDao->deleteSetting($reviewFormElement->getId(), 'possibleResponses'); $reviewFormElementDao->updateObject($reviewFormElement); $this->reviewFormElementId = $reviewFormElement->getId(); } else { $this->reviewFormElementId = $reviewFormElementDao->insertObject($reviewFormElement); $reviewFormElementDao->resequenceReviewFormElements($this->reviewFormId); } }
/** * Save review form element. * @param $request PKPRequest * @return int Review form element ID */ function execute($request) { $reviewFormElementDao = DAORegistry::getDAO('ReviewFormElementDAO'); if ($this->reviewFormElementId) { $context = $request->getContext(); $reviewFormElement = $reviewFormElementDao->getById($this->reviewFormElementId); $reviewFormDao = DAORegistry::getDAO('ReviewFormDAO'); $reviewForm = $reviewFormDao->getById($reviewFormElement->getReviewFormId(), Application::getContextAssocType(), $context->getId()); if (!$reviewForm) { fatalError('Invalid review form element ID!'); } } else { $reviewFormElement = $reviewFormElementDao->newDataObject(); $reviewFormElement->setReviewFormId($this->reviewFormId); $reviewFormElement->setSequence(REALLY_BIG_NUMBER); } $reviewFormElement->setQuestion($this->getData('question'), null); // Localized $reviewFormElement->setRequired($this->getData('required') ? 1 : 0); $reviewFormElement->setIncluded($this->getData('included') ? 1 : 0); $reviewFormElement->setElementType($this->getData('elementType')); if (in_array($this->getData('elementType'), ReviewFormElement::getMultipleResponsesElementTypes())) { $this->setData('possibleResponsesProcessed', $reviewFormElement->getPossibleResponses(null)); ListbuilderHandler::unpack($request, $this->getData('possibleResponses'), array($this, 'deleteEntry'), array($this, 'insertEntry'), array($this, 'updateEntry')); $reviewFormElement->setPossibleResponses($this->getData('possibleResponsesProcessed'), null); } else { $reviewFormElement->setPossibleResponses(null, null); } if ($reviewFormElement->getId()) { $reviewFormElementDao->deleteSetting($reviewFormElement->getId(), 'possibleResponses'); $reviewFormElementDao->updateObject($reviewFormElement); } else { $this->reviewFormElementId = $reviewFormElementDao->insertObject($reviewFormElement); $reviewFormElementDao->resequenceReviewFormElements($this->reviewFormId); } return $this->reviewFormElementId; }