validate(null, $request); $journal = $request->getJournal(); if (!$journal) { $hasNoContexts = null; // Avoid scrutinizer warnings $journal = $this->getTargetContext($request, $hasNoContexts); if ($journal) { // There's a target context but no journal in the current request. Redirect. $request->redirect($journal->getPath()); } if ($hasNoContexts && Validation::isSiteAdmin()) { // No contexts created, and this is the admin. $request->redirect(null, 'admin', 'contexts'); } } $this->setupTemplate($request); $router = $request->getRouter(); $templateMgr = TemplateManager::getManager($request); $templateMgr->assign([ 'highlights' => $this->getHighlights($journal), ]); $this->_setupAnnouncements($journal ?? $request->getSite(), $templateMgr); if ($journal) { // Assign header and content for home page $templateMgr->assign([ 'additionalHomeContent' => $journal->getLocalizedData('additionalHomeContent'), 'homepageImage' => $journal->getLocalizedData('homepageImage'), 'homepageImageAltText' => $journal->getLocalizedData('homepageImageAltText'), 'journalDescription' => $journal->getLocalizedData('description'), ]); $issue = Repo::issue()->getCurrent($journal->getId(), true); if (isset($issue) && $journal->getData('publishingMode') != \APP\journal\Journal::PUBLISHING_MODE_NONE) { // The current issue TOC/cover page should be displayed below the custom home page. IssueHandler::_setupIssueTemplate($request, $issue); } $templateMgr->display('frontend/pages/indexJournal.tpl'); event(new UsageEvent(Application::ASSOC_TYPE_JOURNAL, $journal)); return; } else { $journalDao = DAORegistry::getDAO('JournalDAO'); /** @var JournalDAO $journalDao */ $site = $request->getSite(); if ($site->getRedirect() && ($journal = $journalDao->getById($site->getRedirect())) != null) { $request->redirect($journal->getPath()); } $templateMgr->assign([ 'pageTitleTranslated' => $site->getLocalizedTitle(), 'about' => $site->getLocalizedAbout(), 'journalFilesPath' => $request->getBaseUrl() . '/' . Config::getVar('files', 'public_files_dir') . '/journals/', 'journals' => $journalDao->getAll(true)->toArray(), 'site' => $site, ]); $templateMgr->setCacheability(TemplateManager::CACHEABILITY_PUBLIC); $templateMgr->display('frontend/pages/indexSite.tpl'); } } }