00001 <?php
00002
00015
00016
00017
00018 import ('issue.IssueAction');
00019
00020 class IssueHandler extends Handler {
00021
00025 function index($args) {
00026 IssueHandler::current();
00027 }
00028
00032 function current($args = null) {
00033 parent::validate(true);
00034
00035 $journal = &Request::getJournal();
00036
00037 $issueDao = &DAORegistry::getDAO('IssueDAO');
00038 $issue = &$issueDao->getCurrentIssue($journal->getJournalId());
00039
00040 $templateMgr = &TemplateManager::getManager();
00041
00042 if ($issue != null) {
00043 import('file.PublicFileManager');
00044 $publicFileManager = &new PublicFileManager();
00045
00046 if ($styleFileName = $issue->getStyleFileName()) {
00047 $templateMgr->addStyleSheet(
00048 Request::getBaseUrl() . '/' . $publicFileManager->getJournalFilesPath($journal->getJournalId()) . '/' . $styleFileName
00049 );
00050 }
00051
00052 $issueHeadingTitle = $issue->getIssueIdentification(false, true);
00053 $issueCrumbTitle = $issue->getIssueIdentification(false, true);
00054
00055 $arg = isset($args[0]) ? $args[0] : '';
00056 $showToc = ($arg == 'showToc') ? true : false;
00057
00058 $locale = Locale::getLocale();
00059 $templateMgr->assign('locale', $locale);
00060
00061 $coverPagePath = Request::getBaseUrl() . '/';
00062 $coverPagePath .= $publicFileManager->getJournalFilesPath($journal->getJournalId()) . '/';
00063 $templateMgr->assign('coverPagePath', $coverPagePath);
00064
00065 if (!$showToc && $issue->getFileName($locale) && $issue->getShowCoverPage($locale) && !$issue->getHideCoverPageCover($locale)) {
00066 $templateMgr->assign('fileName', $issue->getFileName($locale));
00067 $templateMgr->assign('width', $issue->getWidth($locale));
00068 $templateMgr->assign('height', $issue->getHeight($locale));
00069 $templateMgr->assign('coverPageAltText', $issue->getCoverPageAltText($locale));
00070 $templateMgr->assign('originalFileName', $issue->getOriginalFileName($locale));
00071
00072 $showToc = false;
00073 } else {
00074 $publishedArticleDao = &DAORegistry::getDAO('PublishedArticleDAO');
00075 $publishedArticles = &$publishedArticleDao->getPublishedArticlesInSections($issue->getIssueId(), true);
00076 $templateMgr->assign_by_ref('publishedArticles', $publishedArticles);
00077 $showToc = true;
00078 }
00079
00080 $templateMgr->assign_by_ref('issue', $issue);
00081 $templateMgr->assign('showToc', $showToc);
00082
00083
00084 import('issue.IssueAction');
00085 $subscriptionRequired = IssueAction::subscriptionRequired($issue);
00086 $subscribedUser = IssueAction::subscribedUser($journal);
00087 $subscribedDomain = IssueAction::subscribedDomain($journal);
00088 $subscriptionExpiryPartial = $journal->getSetting('subscriptionExpiryPartial');
00089
00090 if ($showToc && $subscriptionRequired && !$subscribedUser && !$subscribedDomain && $subscriptionExpiryPartial) {
00091 $templateMgr->assign('subscriptionExpiryPartial', true);
00092 $publishedArticleDao = &DAORegistry::getDAO('PublishedArticleDAO');
00093 $publishedArticlesTemp = &$publishedArticleDao->getPublishedArticles($issue->getIssueId(), null, true);
00094
00095 $articleExpiryPartial = array();
00096 foreach ($publishedArticlesTemp as $publishedArticle) {
00097 $partial = IssueAction::subscribedUser($journal, $issue->getIssueId(), $publishedArticle->getArticleId());
00098 if (!$partial) IssueAction::subscribedDomain($journal, $issue->getIssueId(), $publishedArticle->getArticleId());
00099 $articleExpiryPartial[$publishedArticle->getArticleId()] = $partial;
00100 }
00101 $templateMgr->assign_by_ref('articleExpiryPartial', $articleExpiryPartial);
00102 }
00103
00104 $templateMgr->assign('subscriptionRequired', $subscriptionRequired);
00105 $templateMgr->assign('subscribedUser', $subscribedUser);
00106 $templateMgr->assign('subscribedDomain', $subscribedDomain);
00107 $templateMgr->assign('showGalleyLinks', $journal->getSetting('showGalleyLinks'));
00108
00109 import('payment.ojs.OJSPaymentManager');
00110 $paymentManager =& OJSPaymentManager::getManager();
00111 if ( $paymentManager->onlyPdfEnabled() ) {
00112 $templateMgr->assign('restrictOnlyPdf', true);
00113 }
00114 if ( $paymentManager->purchaseArticleEnabled() ) {
00115 $templateMgr->assign('purchaseArticleEnabled', true);
00116 }
00117
00118 } else {
00119 $issueCrumbTitle = Locale::translate('current.noCurrentIssue');
00120 $issueHeadingTitle = Locale::translate('current.noCurrentIssue');
00121 }
00122
00123
00124 $templateMgr->assign('displayCreativeCommons', $journal->getSetting('includeCreativeCommons'));
00125 $templateMgr->assign('issueCrumbTitle', $issueCrumbTitle);
00126 $templateMgr->assign('issueHeadingTitle', $issueHeadingTitle);
00127 $templateMgr->assign('pageHierarchy', array(array(Request::url(null, 'issue', 'current'), 'current.current')));
00128 $templateMgr->assign('helpTopicId', 'user.currentAndArchives');
00129 $templateMgr->display('issue/viewPage.tpl');
00130 }
00131
00135 function view($args) {
00136 parent::validate(true);
00137
00138 $issueId = isset($args[0]) ? $args[0] : 0;
00139 $showToc = isset($args[1]) ? $args[1] : '';
00140
00141 $journal = &Request::getJournal();
00142
00143 $issueDao = &DAORegistry::getDAO('IssueDAO');
00144
00145 if ($journal->getSetting('enablePublicIssueId')) {
00146 $issue = &$issueDao->getIssueByBestIssueId($issueId, $journal->getJournalId());
00147 } else {
00148 $issue = &$issueDao->getIssueById((int) $issueId);
00149 }
00150
00151 if (!$issue) Request::redirect(null, null, 'current');
00152
00153 $templateMgr = &TemplateManager::getManager();
00154 IssueHandler::setupIssueTemplate($issue, ($showToc == 'showToc') ? true : false);
00155
00156
00157 $templateMgr->assign('displayCreativeCommons', $journal->getSetting('includeCreativeCommons'));
00158 $templateMgr->assign('pageHierarchy', array(array(Request::url(null, 'issue', 'archive'), 'archive.archives')));
00159 $templateMgr->assign('helpTopicId', 'user.currentAndArchives');
00160 $templateMgr->display('issue/viewPage.tpl');
00161
00162 }
00163
00172 function setupIssueTemplate(&$issue, $showToc = false) {
00173 $journal = &Request::getJournal();
00174 $journalId = $journal->getJournalId();
00175 $templateMgr = &TemplateManager::getManager();
00176 if (isset($issue) && ($issue->getPublished() || Validation::isEditor($journalId) || Validation::isLayoutEditor($journalId) || Validation::isProofreader($journalId)) && $issue->getJournalId() == $journalId) {
00177
00178 $issueHeadingTitle = $issue->getIssueIdentification(false, true);
00179 $issueCrumbTitle = $issue->getIssueIdentification(false, true);
00180
00181 $locale = Locale::getLocale();
00182
00183 import('file.PublicFileManager');
00184 $publicFileManager = &new PublicFileManager();
00185 $coverPagePath = Request::getBaseUrl() . '/';
00186 $coverPagePath .= $publicFileManager->getJournalFilesPath($journalId) . '/';
00187 $templateMgr->assign('coverPagePath', $coverPagePath);
00188 $templateMgr->assign('locale', $locale);
00189
00190
00191 if (!$showToc && $issue->getFileName($locale) && $issue->getShowCoverPage($locale) && !$issue->getHideCoverPageCover($locale)) {
00192 $templateMgr->assign('fileName', $issue->getFileName($locale));
00193 $templateMgr->assign('width', $issue->getWidth($locale));
00194 $templateMgr->assign('height', $issue->getHeight($locale));
00195 $templateMgr->assign('coverPageAltText', $issue->getCoverPageAltText($locale));
00196 $templateMgr->assign('originalFileName', $issue->getOriginalFileName($locale));
00197
00198 $showToc = false;
00199 } else {
00200 $publishedArticleDao = &DAORegistry::getDAO('PublishedArticleDAO');
00201 $publishedArticles = &$publishedArticleDao->getPublishedArticlesInSections($issue->getIssueId(), true);
00202
00203 $publicFileManager = &new PublicFileManager();
00204 $templateMgr->assign('publishedArticles', $publishedArticles);
00205 $showToc = true;
00206 }
00207 $templateMgr->assign('showToc', $showToc);
00208 $templateMgr->assign('issueId', $issue->getBestIssueId());
00209 $templateMgr->assign('issue', $issue);
00210
00211
00212 import('issue.IssueAction');
00213 $subscriptionRequired = IssueAction::subscriptionRequired($issue);
00214 $subscribedUser = IssueAction::subscribedUser($journal);
00215 $subscribedDomain = IssueAction::subscribedDomain($journal);
00216 $subscriptionExpiryPartial = $journal->getSetting('subscriptionExpiryPartial');
00217
00218 if ($showToc && $subscriptionRequired && !$subscribedUser && !$subscribedDomain && $subscriptionExpiryPartial) {
00219 $templateMgr->assign('subscriptionExpiryPartial', true);
00220 $publishedArticleDao = &DAORegistry::getDAO('PublishedArticleDAO');
00221 $publishedArticlesTemp = &$publishedArticleDao->getPublishedArticles($issue->getIssueId(), null, true);
00222
00223 $articleExpiryPartial = array();
00224 foreach ($publishedArticlesTemp as $publishedArticle) {
00225 $partial = IssueAction::subscribedUser($journal, $issue->getIssueId(), $publishedArticle->getArticleId());
00226 if (!$partial) IssueAction::subscribedDomain($journal, $issue->getIssueId(), $publishedArticle->getArticleId());
00227 $articleExpiryPartial[$publishedArticle->getArticleId()] = $partial;
00228 }
00229 $templateMgr->assign_by_ref('articleExpiryPartial', $articleExpiryPartial);
00230 }
00231
00232 $templateMgr->assign('subscriptionRequired', $subscriptionRequired);
00233 $templateMgr->assign('subscribedUser', $subscribedUser);
00234 $templateMgr->assign('subscribedDomain', $subscribedDomain);
00235 $templateMgr->assign('showGalleyLinks', $journal->getSetting('showGalleyLinks'));
00236
00237 import('payment.ojs.OJSPaymentManager');
00238 $paymentManager =& OJSPaymentManager::getManager();
00239 if ( $paymentManager->onlyPdfEnabled() ) {
00240 $templateMgr->assign('restrictOnlyPdf', true);
00241 }
00242
00243 } else {
00244 $issueCrumbTitle = Locale::translate('archive.issueUnavailable');
00245 $issueHeadingTitle = Locale::translate('archive.issueUnavailable');
00246 }
00247
00248 if ($styleFileName = $issue->getStyleFileName()) {
00249 import('file.PublicFileManager');
00250 $publicFileManager = &new PublicFileManager();
00251 $templateMgr->addStyleSheet(
00252 Request::getBaseUrl() . '/' . $publicFileManager->getJournalFilesPath($journalId) . '/' . $styleFileName
00253 );
00254 }
00255
00256 $templateMgr->assign('pageCrumbTitleTranslated', $issueCrumbTitle);
00257 $templateMgr->assign('issueHeadingTitle', $issueHeadingTitle);
00258 }
00259
00263 function archive() {
00264 parent::validate(true);
00265
00266 $journal = &Request::getJournal();
00267 $issueDao = &DAORegistry::getDAO('IssueDAO');
00268 $rangeInfo = Handler::getRangeInfo('issues');
00269
00270 $publishedIssuesIterator = $issueDao->getPublishedIssues($journal->getJournalId(), $rangeInfo);
00271
00272 import('file.PublicFileManager');
00273 $publicFileManager = &new PublicFileManager();
00274 $coverPagePath = Request::getBaseUrl() . '/';
00275 $coverPagePath .= $publicFileManager->getJournalFilesPath($journal->getJournalId()) . '/';
00276
00277 $templateMgr = &TemplateManager::getManager();
00278 $templateMgr->assign('coverPagePath', $coverPagePath);
00279 $templateMgr->assign('locale', Locale::getLocale());
00280 $templateMgr->assign_by_ref('issues', $publishedIssuesIterator);
00281 $templateMgr->assign('helpTopicId', 'user.currentAndArchives');
00282 $templateMgr->display('issue/archive.tpl');
00283 }
00284
00285 }
00286
00287 ?>