/** * Delete issue. Deletes associated issue galleys, cover pages, and published articles. * @param $issue object issue */ function deleteObject($issue) { import('classes.file.PublicFileManager'); $publicFileManager = new PublicFileManager(); $coverImage = $issue->getCoverImage(); if (!empty($coverImage)) { $publicFileManager->removeJournalFile($issue->getJournalId(), $coverImage); } $issueId = $issue->getId(); // Delete issue-specific ordering if it exists. $sectionDao = DAORegistry::getDAO('SectionDAO'); $sectionDao->deleteCustomSectionOrdering($issueId); // Delete published issue galleys and issue files $issueGalleyDao = DAORegistry::getDAO('IssueGalleyDAO'); $issueGalleyDao->deleteByIssueId($issueId); $issueFileDao = DAORegistry::getDAO('IssueFileDAO'); $issueFileDao->deleteByIssueId($issueId); import('classes.file.IssueFileManager'); $issueFileManager = new IssueFileManager($issueId); $issueFileManager->deleteIssueTree(); // Delete published articles $publishedArticleDao = DAORegistry::getDAO('PublishedArticleDAO'); $publishedArticleDao->deletePublishedArticlesByIssueId($issueId); // Delete issue settings and issue $this->update('DELETE FROM issue_settings WHERE issue_id = ?', (int) $issueId); $this->update('DELETE FROM issues WHERE issue_id = ?', (int) $issueId); $this->update('DELETE FROM custom_issue_orders WHERE issue_id = ?', (int) $issueId); $this->resequenceCustomIssueOrders($issue->getJournalId()); $this->flushCache(); }
/** * Delete issue. Deletes associated issue galleys, cover pages, and published articles. * @param $issue object issue */ function deleteIssue(&$issue) { import('classes.file.PublicFileManager'); $publicFileManager = new PublicFileManager(); if (is_array($issue->getFileName(null))) { foreach ($issue->getFileName(null) as $fileName) { if ($fileName != '') { $publicFileManager->removeJournalFile($issue->getJournalId(), $fileName); } } } if (($fileName = $issue->getStyleFileName()) != '') { $publicFileManager->removeJournalFile($issue->getJournalId(), $fileName); } $issueId = $issue->getId(); // Delete issue-specific ordering if it exists. $sectionDao =& DAORegistry::getDAO('SectionDAO'); $sectionDao->deleteCustomSectionOrdering($issueId); // Delete published issue galleys and issue files $issueGalleyDao =& DAORegistry::getDAO('IssueGalleyDAO'); $issueGalleyDao->deleteGalleysByIssue($issueId); $issueFileDao =& DAORegistry::getDAO('IssueFileDAO'); $issueFileDao->deleteIssueFiles($issueId); import('classes.file.IssueFileManager'); $issueFileManager = new IssueFileManager($issueId); $issueFileManager->deleteIssueTree(); // Delete published articles $publishedArticleDao =& DAORegistry::getDAO('PublishedArticleDAO'); $publishedArticleDao->deletePublishedArticlesByIssueId($issueId); // Delete issue settings and issue $this->update('DELETE FROM issue_settings WHERE issue_id = ?', (int) $issueId); $this->update('DELETE FROM issues WHERE issue_id = ?', (int) $issueId); $this->update('DELETE FROM custom_issue_orders WHERE issue_id = ?', (int) $issueId); $this->resequenceCustomIssueOrders($issue->getJournalId()); $this->flushCache(); }