Open Preprint Systems  3.3.0
IndexHandler.inc.php
1 <?php
2 
16 import('lib.pkp.pages.index.PKPIndexHandler');
17 
19  //
20  // Public handler operations
21  //
28  function index($args, $request) {
29  $this->validate(null, $request);
30  $journal = $request->getJournal();
31 
32  if (!$journal) {
33  $journal = $this->getTargetContext($request, $journalsCount);
34  if ($journal) {
35  // There's a target context but no journal in the current request. Redirect.
36  $request->redirect($journal->getPath());
37  }
38  if ($journalsCount === 0 && Validation::isSiteAdmin()) {
39  // No contexts created, and this is the admin.
40  $request->redirect(null, 'admin', 'contexts');
41  }
42  }
43 
44  $this->setupTemplate($request);
45  $router = $request->getRouter();
46  $templateMgr = TemplateManager::getManager($request);
47  if ($journal) {
48 
49  // OPS: sections
50  $sectionDao = DAORegistry::getDAO('SectionDAO'); /* @var $sectionDao SectionDAO */
51  $sections = $sectionDao->getByContextId($journal->getId());
52 
53  // OPS: categories
54  $categoryDao = DAORegistry::getDAO('CategoryDAO'); /* @var $categoryDao CategoryDAO */
55  $categories = $categoryDao->getByContextId($journal->getId());
56 
57  // Latest preprints
58  import('classes.submission.Submission');
59  $submissionService = Services::get('submission');
60  $params = array(
61  'contextId' => $journal->getId(),
62  'count' => '10',
63  'status' => STATUS_PUBLISHED,
64  );
65  $publishedSubmissions = $submissionService->getMany($params);
66 
67  // Assign header and content for home page
68  $templateMgr->assign(array(
69  'additionalHomeContent' => $journal->getLocalizedData('additionalHomeContent'),
70  'homepageImage' => $journal->getLocalizedData('homepageImage'),
71  'homepageImageAltText' => $journal->getLocalizedData('homepageImageAltText'),
72  'journalDescription' => $journal->getLocalizedData('description'),
73  'sections' => $sections,
74  'categories' => $categories,
75  'pubIdPlugins' => PluginRegistry::loadCategory('pubIds', true),
76  'publishedSubmissions' => $publishedSubmissions,
77  ));
78 
79  $this->_setupAnnouncements($journal, $templateMgr);
80 
81  $templateMgr->display('frontend/pages/indexJournal.tpl');
82  } else {
83  $journalDao = DAORegistry::getDAO('JournalDAO'); /* @var $journalDao JournalDAO */
84  $site = $request->getSite();
85 
86  if ($site->getRedirect() && ($journal = $journalDao->getById($site->getRedirect())) != null) {
87  $request->redirect($journal->getPath());
88  }
89 
90  $templateMgr->assign(array(
91  'pageTitleTranslated' => $site->getLocalizedTitle(),
92  'about' => $site->getLocalizedAbout(),
93  'journalFilesPath' => $request->getBaseUrl() . '/' . Config::getVar('files', 'public_files_dir') . '/journals/',
94  'journals' => $journalDao->getAll(true),
95  'site' => $site,
96  ));
97  $templateMgr->setCacheability(CACHEABILITY_PUBLIC);
98  $templateMgr->display('frontend/pages/indexSite.tpl');
99  }
100  }
101 }
102 
103 
Validation\isSiteAdmin
static isSiteAdmin()
Definition: Validation.inc.php:400
PKPIndexHandler\_setupAnnouncements
_setupAnnouncements($context, $templateMgr)
Definition: PKPIndexHandler.inc.php:25
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
PKPIndexHandler
Definition: PKPIndexHandler.inc.php:18
IndexHandler
Handle site index requests.
Definition: IndexHandler.inc.php:18
PluginRegistry\loadCategory
static loadCategory($category, $enabledOnly=false, $mainContextId=null)
Definition: PluginRegistry.inc.php:103
PKPHandler\getTargetContext
getTargetContext($request, &$contextsCount=null)
Definition: PKPHandler.inc.php:580
Config\getVar
static getVar($section, $key, $default=null)
Definition: Config.inc.php:35
IndexHandler\index
index($args, $request)
Definition: IndexHandler.inc.php:28
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1226
PKPHandler\validate
validate($requiredContexts=null, $request=null)
Definition: PKPHandler.inc.php:351
PKPHandler\setupTemplate
setupTemplate($request)
Definition: PKPHandler.inc.php:466
PKPServices\get
static get($service)
Definition: PKPServices.inc.php:49