SubmissionDAO::deleteById PHP Метод

deleteById() публичный Метод

Delete a submission by ID.
public deleteById ( $submissionId )
$submissionId int
    function deleteById($submissionId)
    {
        // Delete submission files.
        $submission = $this->getById($submissionId);
        assert(is_a($submission, 'Submission'));
        // 'deleteAllRevisionsBySubmissionId' has to be called before 'rmtree'
        // because SubmissionFileDaoDelegate::deleteObjects checks the file
        // and returns false if the file is not there, which makes the foreach loop in
        // PKPSubmissionFileDAO::_deleteInternally not run till the end.
        $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO');
        /* @var $submissionFileDao SubmissionFileDAO */
        $submissionFileDao->deleteAllRevisionsBySubmissionId($submissionId);
        import('lib.pkp.classes.file.SubmissionFileManager');
        $submissionFileManager = new SubmissionFileManager($submission->getContextId(), $submission->getId());
        $submissionFileManager->rmtree($submissionFileManager->getBasePath());
        $this->authorDao->deleteBySubmissionId($submissionId);
        $reviewRoundDao = DAORegistry::getDAO('ReviewRoundDAO');
        $reviewRoundDao->deleteBySubmissionId($submissionId);
        $editDecisionDao = DAORegistry::getDAO('EditDecisionDAO');
        $editDecisionDao->deleteDecisionsBySubmissionId($submissionId);
        $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO');
        $reviewAssignmentDao->deleteBySubmissionId($submissionId);
        // Delete the queries associated with a submission
        $queryDao = DAORegistry::getDAO('QueryDAO');
        $queryDao->deleteByAssoc(ASSOC_TYPE_SUBMISSION, $submissionId);
        // Delete the stage assignments.
        $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO');
        $stageAssignments = $stageAssignmentDao->getBySubmissionAndStageId($submissionId);
        while ($stageAssignment = $stageAssignments->next()) {
            $stageAssignmentDao->deleteObject($stageAssignment);
        }
        $noteDao = DAORegistry::getDAO('NoteDAO');
        $noteDao->deleteByAssoc(ASSOC_TYPE_SUBMISSION, $submissionId);
        $submissionCommentDao = DAORegistry::getDAO('SubmissionCommentDAO');
        $submissionCommentDao->deleteBySubmissionId($submissionId);
        // Delete any outstanding notifications for this submission
        $notificationDao = DAORegistry::getDAO('NotificationDAO');
        $notificationDao->deleteByAssoc(ASSOC_TYPE_SUBMISSION, $submissionId);
        $submissionEventLogDao = DAORegistry::getDAO('SubmissionEventLogDAO');
        $submissionEventLogDao->deleteByAssoc(ASSOC_TYPE_SUBMISSION, $submissionId);
        $submissionEmailLogDao = DAORegistry::getDAO('SubmissionEmailLogDAO');
        $submissionEmailLogDao->deleteByAssoc(ASSOC_TYPE_SUBMISSION, $submissionId);
        // Delete controlled vocab lists assigned to this submission
        $submissionKeywordDao = DAORegistry::getDAO('SubmissionKeywordDAO');
        $submissionKeywordVocab = $submissionKeywordDao->getBySymbolic(CONTROLLED_VOCAB_SUBMISSION_KEYWORD, ASSOC_TYPE_SUBMISSION, $submissionId);
        if (isset($submissionKeywordVocab)) {
            $submissionKeywordDao->deleteObject($submissionKeywordVocab);
        }
        $submissionDisciplineDao = DAORegistry::getDAO('SubmissionDisciplineDAO');
        $submissionDisciplineVocab = $submissionDisciplineDao->getBySymbolic(CONTROLLED_VOCAB_SUBMISSION_DISCIPLINE, ASSOC_TYPE_SUBMISSION, $submissionId);
        if (isset($submissionDisciplineVocab)) {
            $submissionDisciplineDao->deleteObject($submissionDisciplineVocab);
        }
        $submissionAgencyDao = DAORegistry::getDAO('SubmissionAgencyDAO');
        $submissionAgencyVocab = $submissionAgencyDao->getBySymbolic(CONTROLLED_VOCAB_SUBMISSION_AGENCY, ASSOC_TYPE_SUBMISSION, $submissionId);
        if (isset($submissionAgencyVocab)) {
            $submissionAgencyDao->deleteObject($submissionAgencyVocab);
        }
        $submissionLanguageDao = DAORegistry::getDAO('SubmissionLanguageDAO');
        $submissionLanguageVocab = $submissionLanguageDao->getBySymbolic(CONTROLLED_VOCAB_SUBMISSION_LANGUAGE, ASSOC_TYPE_SUBMISSION, $submissionId);
        if (isset($submissionLanguageVocab)) {
            $submissionLanguageDao->deleteObject($submissionLanguageVocab);
        }
        $submissionSubjectDao = DAORegistry::getDAO('SubmissionSubjectDAO');
        $submissionSubjectVocab = $submissionSubjectDao->getBySymbolic(CONTROLLED_VOCAB_SUBMISSION_SUBJECT, ASSOC_TYPE_SUBMISSION, $submissionId);
        if (isset($submissionSubjectVocab)) {
            $submissionSubjectDao->deleteObject($submissionSubjectVocab);
        }
        $this->update('DELETE FROM submission_settings WHERE submission_id = ?', (int) $submissionId);
        $this->update('DELETE FROM submissions WHERE submission_id = ?', (int) $submissionId);
    }

Usage Example

Пример #1
0
 /**
  * @copydoc SubmissionDAO::deleteById
  */
 function deleteById($submissionId)
 {
     parent::deleteById($submissionId);
     $publishedMonographDao = DAORegistry::getDAO('PublishedMonographDAO');
     $publishedMonographDao->deleteById($submissionId);
     // Delete chapters and assigned chapter authors.
     $chapterDao = DAORegistry::getDAO('ChapterDAO');
     $chapters = $chapterDao->getChapters($submissionId);
     while ($chapter = $chapters->next()) {
         // also removes Chapter Author associations
         $chapterDao->deleteObject($chapter);
     }
     // Delete references to features or new releases.
     $featureDao = DAORegistry::getDAO('FeatureDAO');
     $featureDao->deleteByMonographId($submissionId);
     $newReleaseDao = DAORegistry::getDAO('NewReleaseDAO');
     $newReleaseDao->deleteByMonographId($submissionId);
     import('classes.search.MonographSearchIndex');
     MonographSearchIndex::deleteTextIndex($submissionId);
 }
All Usage Examples Of SubmissionDAO::deleteById