Inheritance: extends Handler
Exemple #1
0
 /**
  * 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);
 }
Exemple #3
0
 /**
  * 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');
     }
 }