updateObject() public method

Update an existing article.
public updateObject ( $article )
$article Article
コード例 #1
0
    /**
     * Update an existing section editor submission.
     * @param $sectionEditorSubmission SectionEditorSubmission
     */
    function updateSectionEditorSubmission(&$sectionEditorSubmission)
    {
        // Update editor decisions
        for ($i = 1; $i <= $sectionEditorSubmission->getCurrentRound(); $i++) {
            $editorDecisions =& $sectionEditorSubmission->getDecisions($i);
            if (is_array($editorDecisions)) {
                foreach ($editorDecisions as $key => $editorDecision) {
                    if ($editorDecision['editDecisionId'] == null) {
                        $this->update(sprintf('INSERT INTO edit_decisions
								(submission_id, round, editor_id, decision, date_decided)
								VALUES (?, ?, ?, ?, %s)', $this->datetimeToDB($editorDecision['dateDecided'])), array($sectionEditorSubmission->getId(), $sectionEditorSubmission->getCurrentRound(), $editorDecision['editorId'], $editorDecision['decision']));
                        $editorDecisions[$key]['editDecisionId'] = $this->_getInsertId('edit_decisions', 'edit_decision_id');
                    }
                }
            }
            unset($editorDecisions);
        }
        // update review assignments
        foreach ($sectionEditorSubmission->getReviewAssignments() as $roundReviewAssignments) {
            foreach ($roundReviewAssignments as $reviewAssignment) {
                if ($reviewAssignment->getId() > 0) {
                    $this->reviewAssignmentDao->updateObject($reviewAssignment);
                } else {
                    $this->reviewAssignmentDao->insertObject($reviewAssignment);
                }
            }
        }
        // Remove deleted review assignments
        $removedReviewAssignments = $sectionEditorSubmission->getRemovedReviewAssignments();
        for ($i = 0, $count = count($removedReviewAssignments); $i < $count; $i++) {
            $this->reviewAssignmentDao->deleteById($removedReviewAssignments[$i]);
        }
        // Update article
        if ($sectionEditorSubmission->getId()) {
            $article = parent::getById($sectionEditorSubmission->getId());
            // Only update fields that can actually be edited.
            $article->setSectionId($sectionEditorSubmission->getSectionId());
            $article->setCurrentRound($sectionEditorSubmission->getCurrentRound());
            $article->setStatus($sectionEditorSubmission->getStatus());
            $article->setDateStatusModified($sectionEditorSubmission->getDateStatusModified());
            $article->setLastModified($sectionEditorSubmission->getLastModified());
            $article->setCommentsStatus($sectionEditorSubmission->getCommentsStatus());
            parent::updateObject($article);
        }
    }