/** * If no journal is selected, display list of journals. * Otherwise, display the index page for the selected journal. * @param $args array * @param $request Request */ function index($args, &$request) { $this->validate(); $this->setupTemplate(); $router =& $request->getRouter(); $templateMgr =& TemplateManager::getManager(); $journalDao =& DAORegistry::getDAO('JournalDAO'); $journalPath = $router->getRequestedContextPath($request); $templateMgr->assign('helpTopicId', 'user.home'); $journal =& $router->getContext($request); if ($journal) { // Assign header and content for home page $templateMgr->assign('displayPageHeaderTitle', $journal->getLocalizedPageHeaderTitle(true)); $templateMgr->assign('displayPageHeaderLogo', $journal->getLocalizedPageHeaderLogo(true)); $templateMgr->assign('displayPageHeaderTitleAltText', $journal->getLocalizedSetting('homeHeaderTitleImageAltText')); $templateMgr->assign('displayPageHeaderLogoAltText', $journal->getLocalizedSetting('homeHeaderLogoImageAltText')); $templateMgr->assign('additionalHomeContent', $journal->getLocalizedSetting('additionalHomeContent')); $templateMgr->assign('homepageImage', $journal->getLocalizedSetting('homepageImage')); $templateMgr->assign('homepageImageAltText', $journal->getLocalizedSetting('homepageImageAltText')); $templateMgr->assign('journalDescription', $journal->getLocalizedSetting('description')); $displayCurrentIssue = $journal->getSetting('displayCurrentIssue'); $issueDao =& DAORegistry::getDAO('IssueDAO'); $issue =& $issueDao->getCurrentIssue($journal->getId(), true); if ($displayCurrentIssue && isset($issue)) { import('pages.issue.IssueHandler'); // The current issue TOC/cover page should be displayed below the custom home page. IssueHandler::setupIssueTemplate($issue); } // Display creative commons logo/licence if enabled $templateMgr->assign('displayCreativeCommons', $journal->getSetting('includeCreativeCommons')); $enableAnnouncements = $journal->getSetting('enableAnnouncements'); if ($enableAnnouncements) { $enableAnnouncementsHomepage = $journal->getSetting('enableAnnouncementsHomepage'); if ($enableAnnouncementsHomepage) { $numAnnouncementsHomepage = $journal->getSetting('numAnnouncementsHomepage'); $announcementDao =& DAORegistry::getDAO('AnnouncementDAO'); $announcements =& $announcementDao->getNumAnnouncementsNotExpiredByAssocId(ASSOC_TYPE_JOURNAL, $journal->getId(), $numAnnouncementsHomepage); $templateMgr->assign('announcements', $announcements); $templateMgr->assign('enableAnnouncementsHomepage', $enableAnnouncementsHomepage); } } $templateMgr->display('index/journal.tpl'); } else { $site =& Request::getSite(); if ($site->getRedirect() && ($journal = $journalDao->getJournal($site->getRedirect())) != null) { $request->redirect($journal->getPath()); } $templateMgr->assign('intro', $site->getLocalizedIntro()); $templateMgr->assign('journalFilesPath', $request->getBaseUrl() . '/' . Config::getVar('files', 'public_files_dir') . '/journals/'); $journals =& $journalDao->getEnabledJournals(); $templateMgr->assign_by_ref('journals', $journals); $templateMgr->setCacheability(CACHEABILITY_PUBLIC); $templateMgr->display('index/site.tpl'); } }
/** * 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); }
/** * If no journal is selected, display list of journals. * Otherwise, display the index page for the selected journal. * @param $args array * @param $request Request */ function index($args, $request) { $this->validate(null, $request); $journal = $request->getJournal(); if (!$journal) { $journal = $this->getTargetContext($request, $journalsCount); if ($journal) { // There's a target context but no journal in the current request. Redirect. $request->redirect($journal->getPath()); } if ($journalsCount === 0 && Validation::isSiteAdmin()) { // No contexts created, and this is the admin. $request->redirect(null, 'admin', 'contexts'); } } $router = $request->getRouter(); $templateMgr = TemplateManager::getManager($request); $journalDao = DAORegistry::getDAO('JournalDAO'); $this->setupTemplate($request); if ($journal) { // Assign header and content for home page $templateMgr->assign('additionalHomeContent', $journal->getLocalizedSetting('additionalHomeContent')); $templateMgr->assign('homepageImage', $journal->getLocalizedSetting('homepageImage')); $templateMgr->assign('homepageImageAltText', $journal->getLocalizedSetting('homepageImageAltText')); $templateMgr->assign('journalDescription', $journal->getLocalizedSetting('description')); $displayCurrentIssue = $journal->getSetting('displayCurrentIssue'); $issueDao = DAORegistry::getDAO('IssueDAO'); $issue = $issueDao->getCurrent($journal->getId(), true); if ($displayCurrentIssue && isset($issue)) { import('pages.issue.IssueHandler'); // The current issue TOC/cover page should be displayed below the custom home page. IssueHandler::_setupIssueTemplate($request, $issue); } $enableAnnouncements = $journal->getSetting('enableAnnouncements'); if ($enableAnnouncements) { $enableAnnouncementsHomepage = $journal->getSetting('enableAnnouncementsHomepage'); if ($enableAnnouncementsHomepage) { $numAnnouncementsHomepage = $journal->getSetting('numAnnouncementsHomepage'); $announcementDao = DAORegistry::getDAO('AnnouncementDAO'); $announcements =& $announcementDao->getNumAnnouncementsNotExpiredByAssocId(ASSOC_TYPE_JOURNAL, $journal->getId(), $numAnnouncementsHomepage); $templateMgr->assign('announcements', $announcements); $templateMgr->assign('enableAnnouncementsHomepage', $enableAnnouncementsHomepage); } } // Include any social media items that are configured for the context itself. $socialMediaDao = DAORegistry::getDAO('SocialMediaDAO'); $socialMedia =& $socialMediaDao->getEnabledForContextByContextId($journal->getId()); $blocks = array(); while ($media = $socialMedia->next()) { $media->replaceCodeVars(); $blocks[] = $media->getCode(); } $templateMgr->assign('socialMediaBlocks', $blocks); $templateMgr->display('frontend/pages/indexJournal.tpl'); } else { $site = $request->getSite(); if ($site->getRedirect() && ($journal = $journalDao->getById($site->getRedirect())) != null) { $request->redirect($journal->getPath()); } $templateMgr->assign('intro', $site->getLocalizedIntro()); $templateMgr->assign('journalFilesPath', $request->getBaseUrl() . '/' . Config::getVar('files', 'public_files_dir') . '/journals/'); // If we're using paging, fetch the parameters $usePaging = $site->getSetting('usePaging'); if ($usePaging) { $rangeInfo = $this->getRangeInfo($request, 'journals'); } else { $rangeInfo = null; } $templateMgr->assign('usePaging', $usePaging); $journals = $journalDao->getAll(true, $rangeInfo); $templateMgr->assign('journals', $journals); $templateMgr->assign('site', $site); $templateMgr->setCacheability(CACHEABILITY_PUBLIC); $templateMgr->display('frontend/pages/indexSite.tpl'); } }
/** * Display issue view page. */ function view($args) { parent::validate(true); $issueId = isset($args[0]) ? $args[0] : 0; $showToc = isset($args[1]) ? $args[1] : ''; $journal =& Request::getJournal(); $issueDao =& DAORegistry::getDAO('IssueDAO'); if ($journal->getSetting('enablePublicIssueId')) { $issue =& $issueDao->getIssueByBestIssueId($issueId, $journal->getJournalId()); } else { $issue =& $issueDao->getIssueById((int) $issueId); } if (!$issue) { Request::redirect(null, null, 'current'); } $templateMgr =& TemplateManager::getManager(); IssueHandler::setupIssueTemplate($issue, $showToc == 'showToc' ? true : false); // Display creative commons logo/licence if enabled $templateMgr->assign('displayCreativeCommons', $journal->getSetting('includeCreativeCommons')); $templateMgr->assign('pageHierarchy', array(array(Request::url(null, 'issue', 'archive'), 'archive.archives'))); $templateMgr->assign('helpTopicId', 'user.currentAndArchives'); $templateMgr->display('issue/viewPage.tpl'); }
/** * If no journal is selected, display list of journals. * Otherwise, display the index page for the selected journal. * @param $args array * @param $request Request */ function index($args, &$request) { $this->validate(); $this->setupTemplate(); $router =& $request->getRouter(); $templateMgr =& TemplateManager::getManager(); $journalDao =& DAORegistry::getDAO('JournalDAO'); $journalPath = $router->getRequestedContextPath($request); $templateMgr->assign('helpTopicId', 'user.home'); $journal =& $router->getContext($request); if ($journal) { // Assign header and content for home page $templateMgr->assign('displayPageHeaderTitle', $journal->getLocalizedPageHeaderTitle(true)); $templateMgr->assign('displayPageHeaderLogo', $journal->getLocalizedPageHeaderLogo(true)); $templateMgr->assign('displayPageHeaderTitleAltText', $journal->getLocalizedSetting('homeHeaderTitleImageAltText')); $templateMgr->assign('displayPageHeaderLogoAltText', $journal->getLocalizedSetting('homeHeaderLogoImageAltText')); $templateMgr->assign('additionalHomeContent', $journal->getLocalizedSetting('additionalHomeContent')); $templateMgr->assign('homepageImage', $journal->getLocalizedSetting('homepageImage')); $templateMgr->assign('homepageImageAltText', $journal->getLocalizedSetting('homepageImageAltText')); $templateMgr->assign('journalDescription', $journal->getLocalizedSetting('description')); $displayCurrentIssue = $journal->getSetting('displayCurrentIssue'); $issueDao =& DAORegistry::getDAO('IssueDAO'); $issue =& $issueDao->getCurrentIssue($journal->getId(), true); if ($displayCurrentIssue && isset($issue)) { import('pages.issue.IssueHandler'); // The current issue TOC/cover page should be displayed below the custom home page. IssueHandler::setupIssueTemplate($issue); } // Display creative commons logo/licence if enabled $templateMgr->assign('displayCreativeCommons', $journal->getSetting('includeCreativeCommons')); $enableAnnouncements = $journal->getSetting('enableAnnouncements'); if ($enableAnnouncements) { $enableAnnouncementsHomepage = $journal->getSetting('enableAnnouncementsHomepage'); if ($enableAnnouncementsHomepage) { $numAnnouncementsHomepage = $journal->getSetting('numAnnouncementsHomepage'); $announcementDao =& DAORegistry::getDAO('AnnouncementDAO'); $announcements =& $announcementDao->getNumAnnouncementsNotExpiredByAssocId(ASSOC_TYPE_JOURNAL, $journal->getId(), $numAnnouncementsHomepage); $templateMgr->assign('announcements', $announcements); $templateMgr->assign('enableAnnouncementsHomepage', $enableAnnouncementsHomepage); } } $templateMgr->assign_by_ref('journalHomepage', $home = true); $templateMgr->display('index/journal.tpl'); } else { $site =& Request::getSite(); if ($site->getRedirect() && ($journal = $journalDao->getJournal($site->getRedirect())) != null) { $request->redirect($journal->getPath()); } //%CBP% Get top 10 'articles' to display on homepage $CBPPlatformDao =& DAORegistry::getDAO('CBPPlatformDAO'); $popularArticles = $CBPPlatformDao->getArticlesByCriteria(3); $templateMgr->assign('popularArticles', $popularArticles); //%CBP% Get top 3 latest published articles to display on homepage $newArticles = $CBPPlatformDao->getArticlesByCriteria(3, "date_published"); $newIssues = $CBPPlatformDao->getLatestIssues(3); if (!$issueDao) { $issueDao =& DAORegistry::getDAO('IssueDAO'); } for ($i = 0; $i < count($newIssues); $i++) { //%CBP% show thumbnail version rather than full-size front cover $issue = $issueDao->getIssueById($newIssues[$i]['issue_id']); $filename = $issue->getThumbFileName($issue->getFileName('en_US')); $newIssues[$i]['cover'] = Config::getVar('general', 'base_url') . "/" . Config::getVar('files', 'public_files_dir') . "/journals/" . $newIssues[$i]['journal_id'] . "/" . $filename; //cover_issue_" . $newIssues[$i]['issue_id'] . "_en_US.jpg"; $journal = $journalDao->getJournal($newIssues[$i]['journal_id']); $newIssues[$i]['journal'] = $journal->getTitle('en_US'); } $templateMgr->assign('newIssues', $newIssues); $templateMgr->assign('intro', $site->getLocalizedIntro()); $templateMgr->assign('journalFilesPath', $request->getBaseUrl() . '/' . Config::getVar('files', 'public_files_dir') . '/journals/'); $journals =& $journalDao->getEnabledJournals(); $templateMgr->assign_by_ref('journals', $journals); $templateMgr->assign_by_ref('homepage', $home = true); $templateMgr->setCacheability(CACHEABILITY_PUBLIC); $templateMgr->display('index/site.tpl'); } }
/** * If no journal is selected, display list of journals. * Otherwise, display the index page for the selected journal. * @param $args array * @param $request Request */ function index($args, &$request) { $this->validate(); $this->setupTemplate(); $router =& $request->getRouter(); $templateMgr =& TemplateManager::getManager(); $journalDao =& DAORegistry::getDAO('JournalDAO'); $journalPath = $router->getRequestedContextPath($request); $templateMgr->assign('helpTopicId', 'user.home'); $journal =& $router->getContext($request); if ($journal) { // Assign header and content for home page $templateMgr->assign('displayPageHeaderTitle', $journal->getLocalizedPageHeaderTitle(true)); $templateMgr->assign('displayPageHeaderLogo', $journal->getLocalizedPageHeaderLogo(true)); $templateMgr->assign('displayPageHeaderTitleAltText', $journal->getLocalizedSetting('homeHeaderTitleImageAltText')); $templateMgr->assign('displayPageHeaderLogoAltText', $journal->getLocalizedSetting('homeHeaderLogoImageAltText')); $templateMgr->assign('additionalHomeContent', $journal->getLocalizedSetting('additionalHomeContent')); $templateMgr->assign('homepageImage', $journal->getLocalizedSetting('homepageImage')); $templateMgr->assign('homepageImageAltText', $journal->getLocalizedSetting('homepageImageAltText')); $templateMgr->assign('journalDescription', $journal->getLocalizedSetting('description')); $displayCurrentIssue = $journal->getSetting('displayCurrentIssue'); $issueDao =& DAORegistry::getDAO('IssueDAO'); $issue =& $issueDao->getCurrentIssue($journal->getId(), true); if ($displayCurrentIssue && isset($issue)) { import('pages.issue.IssueHandler'); // The current issue TOC/cover page should be displayed below the custom home page. IssueHandler::_setupIssueTemplate($request, $issue); } $enableAnnouncements = $journal->getSetting('enableAnnouncements'); if ($enableAnnouncements) { $enableAnnouncementsHomepage = $journal->getSetting('enableAnnouncementsHomepage'); if ($enableAnnouncementsHomepage) { $numAnnouncementsHomepage = $journal->getSetting('numAnnouncementsHomepage'); $announcementDao =& DAORegistry::getDAO('AnnouncementDAO'); $announcements =& $announcementDao->getNumAnnouncementsNotExpiredByAssocId(ASSOC_TYPE_JOURNAL, $journal->getId(), $numAnnouncementsHomepage); $templateMgr->assign('announcements', $announcements); $templateMgr->assign('enableAnnouncementsHomepage', $enableAnnouncementsHomepage); } } $templateMgr->display('index/journal.tpl'); } else { $site =& Request::getSite(); if ($site->getRedirect() && ($journal = $journalDao->getById($site->getRedirect())) != null) { $request->redirect($journal->getPath()); } $templateMgr->assign('intro', $site->getLocalizedIntro()); $templateMgr->assign('journalFilesPath', $request->getBaseUrl() . '/' . Config::getVar('files', 'public_files_dir') . '/journals/'); // If we're using paging, fetch the parameters $usePaging = $site->getSetting('usePaging'); if ($usePaging) { $rangeInfo =& $this->getRangeInfo('journals'); } else { $rangeInfo = null; } $templateMgr->assign('usePaging', $usePaging); // Fetch the alpha list parameters $searchInitial = Request::getUserVar('searchInitial'); $templateMgr->assign('searchInitial', $searchInitial); $templateMgr->assign('useAlphalist', $site->getSetting('useAlphalist')); $journals =& $journalDao->getJournals(true, $rangeInfo, $searchInitial ? JOURNAL_FIELD_TITLE : JOURNAL_FIELD_SEQUENCE, $searchInitial ? JOURNAL_FIELD_TITLE : null, $searchInitial ? 'startsWith' : null, $searchInitial); $templateMgr->assign_by_ref('journals', $journals); $templateMgr->assign_by_ref('site', $site); $templateMgr->assign('alphaList', explode(' ', __('common.alphaList'))); $templateMgr->setCacheability(CACHEABILITY_PUBLIC); $templateMgr->display('index/site.tpl'); } }