/**
* 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();
}