Open Monograph Press  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  $press = $request->getPress();
31 
32  if (!$press) {
33  $press = $this->getTargetContext($request, $pressesCount);
34  if ($press) {
35  // There's a target context but no press in the current request. Redirect.
36  $request->redirect($press->getPath());
37  }
38  if ($pressesCount === 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 
46  if ($press) {
47  // Display the current press home.
48  $this->_displayPressIndexPage($press, $request);
49  } else {
50  // Display the site home.
51  $site = $request->getSite();
52  $this->_displaySiteIndexPage($site, $request);
53  }
54 
55  }
56 
57 
58  //
59  // Private helper methods.
60  //
66  function _displaySiteIndexPage($site, $request) {
67  $templateMgr = TemplateManager::getManager($request);
68  $pressDao = DAORegistry::getDAO('PressDAO'); /* @var $pressDao PressDAO */
69 
70  if ($site->getRedirect() && ($press = $pressDao->getById($site->getRedirect())) != null) {
71  $request->redirect($press->getPath());
72  }
73 
74  $templateMgr->assign(array(
75  'pageTitleTranslated' => $site->getLocalizedTitle(),
76  'about' => $site->getLocalizedAbout(),
77  'pressesFilesPath' => $request->getBaseUrl() . '/' . Config::getVar('files', 'public_files_dir') . '/presses/',
78  'presses' => $pressDao->getAll(true),
79  'site' => $site,
80  ));
81  $templateMgr->setCacheability(CACHEABILITY_PUBLIC);
82  $templateMgr->display('frontend/pages/indexSite.tpl');
83  }
84 
90  function _displayPressIndexPage($press, $request) {
91  $templateMgr = TemplateManager::getManager($request);
92 
93  // Display New Releases
94  if ($press->getSetting('displayNewReleases')) {
95  $newReleaseDao = DAORegistry::getDAO('NewReleaseDAO'); /* @var $newReleaseDao NewReleaseDAO */
96  $newReleases = $newReleaseDao->getMonographsByAssoc(ASSOC_TYPE_PRESS, $press->getId());
97  $templateMgr->assign('newReleases', $newReleases);
98  }
99 
100  // Assign header and content for home page.
101  $templateMgr->assign('additionalHomeContent', $press->getLocalizedSetting('additionalHomeContent'));
102  $templateMgr->assign('homepageImage', $press->getLocalizedSetting('homepageImage'));
103  $templateMgr->assign('pageTitleTranslated', $press->getLocalizedSetting('name'));
104 
105  // Display creative commons logo/licence if enabled.
106  $templateMgr->assign('displayCreativeCommons', $press->getSetting('includeCreativeCommons'));
107 
108  $this->_setupAnnouncements($press, $templateMgr);
109 
110  // Display Featured Books
111  if ($press->getSetting('displayFeaturedBooks')) {
112  $featureDao = DAORegistry::getDAO('FeatureDAO'); /* @var $featureDao FeatureDAO */
113  $featuredMonographIds = $featureDao->getSequencesByAssoc(ASSOC_TYPE_PRESS, $press->getId());
114  $featuredMonographs = array();
115  if (!empty($featuredMonographIds)) {
116  foreach($featuredMonographIds as $submissionId => $value) {
117  $featuredMonographs[] = Services::get('submission')->get($submissionId);
118  }
119  }
120  $templateMgr->assign('featuredMonographs', $featuredMonographs);
121  }
122 
123  // Display In Spotlight
124  if ($press->getSetting('displayInSpotlight')) {
125  // Include random spotlight items for the press home page.
126  $spotlightDao = DAORegistry::getDAO('SpotlightDAO'); /* @var $spotlightDao SpotlightDAO */
127  $spotlights = $spotlightDao->getRandomByPressId($press->getId(), MAX_SPOTLIGHTS_VISIBLE);
128  $templateMgr->assign('spotlights', $spotlights);
129  }
130 
131  $templateMgr->display('frontend/pages/index.tpl');
132  }
133 }
134 
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
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:1239
PKPHandler\validate
validate($requiredContexts=null, $request=null)
Definition: PKPHandler.inc.php:351
PKPHandler\setupTemplate
setupTemplate($request)
Definition: PKPHandler.inc.php:466
IndexHandler\_displayPressIndexPage
_displayPressIndexPage($press, $request)
Definition: IndexHandler.inc.php:90
IndexHandler\_displaySiteIndexPage
_displaySiteIndexPage($site, $request)
Definition: IndexHandler.inc.php:66
PKPServices\get
static get($service)
Definition: PKPServices.inc.php:49