/**
* Given an issue, set up the template with all the required variables for
* issues/view.tpl to function properly (i.e. current issue and view issue).
* @param $issue object The issue to display
* @param $showToc boolean iff false and a custom cover page exists,
* the cover page will be displayed. Otherwise table of contents
* will be displayed.
*/
function _setupIssueTemplate($request, $issue, $showToc = false)
{
$journal =& $request->getJournal();
$journalId = $journal->getId();
$templateMgr =& TemplateManager::getManager();
if (IssueHandler::_isVisibleIssue($issue, $journalId)) {
$issueHeadingTitle = $issue->getIssueIdentification(false, true);
$issueCrumbTitle = $issue->getIssueIdentification(false, true);
$locale = AppLocale::getLocale();
import('classes.file.PublicFileManager');
$publicFileManager = new PublicFileManager();
$coverPagePath = $request->getBaseUrl() . '/';
$coverPagePath .= $publicFileManager->getJournalFilesPath($journalId) . '/';
$templateMgr->assign('coverPagePath', $coverPagePath);
$templateMgr->assign('locale', $locale);
$coverLocale = $issue->getFileName($locale) ? $locale : $journal->getPrimaryLocale();
if (!$showToc && $issue->getFileName($coverLocale) && $issue->getShowCoverPage($coverLocale) && !$issue->getHideCoverPageCover($coverLocale)) {
$templateMgr->assign('fileName', $issue->getFileName($coverLocale));
$templateMgr->assign('width', $issue->getWidth($coverLocale));
$templateMgr->assign('height', $issue->getHeight($coverLocale));
$templateMgr->assign('coverPageAltText', $issue->getCoverPageAltText($coverLocale));
$templateMgr->assign('originalFileName', $issue->getOriginalFileName($coverLocale));
$showToc = false;
} else {
// Issue galleys
$issueGalleyDao =& DAORegistry::getDAO('IssueGalleyDAO');
$issueGalleys =& $issueGalleyDao->getGalleysByIssue($issue->getId());
$templateMgr->assign_by_ref('issueGalleys', $issueGalleys);
// Published articles
$publishedArticleDao =& DAORegistry::getDAO('PublishedArticleDAO');
$publishedArticles =& $publishedArticleDao->getPublishedArticlesInSections($issue->getId(), true);
$publicFileManager = new PublicFileManager();
$templateMgr->assign_by_ref('publishedArticles', $publishedArticles);
$showToc = true;
}
$templateMgr->assign('showToc', $showToc);
$templateMgr->assign_by_ref('issue', $issue);
// Subscription Access
import('classes.issue.IssueAction');
$subscriptionRequired = IssueAction::subscriptionRequired($issue);
$subscribedUser = IssueAction::subscribedUser($journal);
$subscribedDomain = IssueAction::subscribedDomain($journal);
$subscriptionExpiryPartial = $journal->getSetting('subscriptionExpiryPartial');
if ($showToc && $subscriptionRequired && !$subscribedUser && !$subscribedDomain && $subscriptionExpiryPartial) {
$templateMgr->assign('subscriptionExpiryPartial', true);
// Partial subscription expiry for issue
$partial = IssueAction::subscribedUser($journal, $issue->getId());
if (!$partial) {
IssueAction::subscribedDomain($journal, $issue->getId());
}
$templateMgr->assign('issueExpiryPartial', $partial);
// Partial subscription expiry for articles
$publishedArticleDao =& DAORegistry::getDAO('PublishedArticleDAO');
$publishedArticlesTemp =& $publishedArticleDao->getPublishedArticles($issue->getId());
$articleExpiryPartial = array();
foreach ($publishedArticlesTemp as $publishedArticle) {
$partial = IssueAction::subscribedUser($journal, $issue->getId(), $publishedArticle->getId());
if (!$partial) {
IssueAction::subscribedDomain($journal, $issue->getId(), $publishedArticle->getId());
}
$articleExpiryPartial[$publishedArticle->getId()] = $partial;
}
$templateMgr->assign_by_ref('articleExpiryPartial', $articleExpiryPartial);
}
$templateMgr->assign('subscriptionRequired', $subscriptionRequired);
$templateMgr->assign('subscribedUser', $subscribedUser);
$templateMgr->assign('subscribedDomain', $subscribedDomain);
$templateMgr->assign('showGalleyLinks', $journal->getSetting('showGalleyLinks'));
import('classes.payment.ojs.OJSPaymentManager');
$paymentManager = new OJSPaymentManager($request);
if ($paymentManager->onlyPdfEnabled()) {
$templateMgr->assign('restrictOnlyPdf', true);
}
if ($paymentManager->purchaseArticleEnabled()) {
$templateMgr->assign('purchaseArticleEnabled', true);
}
} else {
$issueCrumbTitle = __('archive.issueUnavailable');
$issueHeadingTitle = __('archive.issueUnavailable');
}
if ($issue && ($styleFileName = $issue->getStyleFileName())) {
import('classes.file.PublicFileManager');
$publicFileManager = new PublicFileManager();
$templateMgr->addStyleSheet($request->getBaseUrl() . '/' . $publicFileManager->getJournalFilesPath($journalId) . '/' . $styleFileName);
}
$templateMgr->assign('pageCrumbTitleTranslated', $issueCrumbTitle);
$templateMgr->assign('issueHeadingTitle', $issueHeadingTitle);
}