00001 <?php
00002
00016 import('classes.handler.Handler');
00017
00018 class IndexHandler extends Handler {
00022 function IndexHandler() {
00023 parent::Handler();
00024 }
00025
00026
00027
00028
00029
00038 function index($args, &$request) {
00039 $targetPress = $this->getTargetPress($request);
00040 $press =& $request->getPress();
00041 $user =& $request->getUser();
00042
00043 if ($user && !$targetPress && Validation::isSiteAdmin()) {
00044
00045
00046 return $request->redirect(null, 'admin', 'presses');
00047 }
00048
00049
00050 $this->setupTemplate();
00051 $templateMgr =& TemplateManager::getManager($request);
00052 $templateMgr->assign('helpTopicId', 'user.home');
00053
00054 if ($press) {
00055
00056 $this->_displayPressIndexPage($press, $templateMgr);
00057 } elseif ($targetPress) {
00058
00059
00060 $request->redirect($targetPress->getPath());
00061 } else {
00062
00063 if ($user) {
00064
00065 $request->redirect(null, 'user', 'profile');
00066 } else {
00067
00068 $request->redirect(null, 'login');
00069 }
00070 }
00071 }
00072
00073
00074
00075
00076
00082 function _displayPressIndexPage($press, &$templateMgr) {
00083
00084
00085 $templateMgr->assign('displayPageHeaderTitle', $press->getPressPageHeaderTitle(true));
00086 $templateMgr->assign('displayPageHeaderLogo', $press->getPressPageHeaderLogo(true));
00087 $templateMgr->assign('additionalHomeContent', $press->getLocalizedSetting('additionalHomeContent'));
00088 $templateMgr->assign('homepageImage', $press->getLocalizedSetting('homepageImage'));
00089
00090
00091 $templateMgr->assign('displayCreativeCommons', $press->getSetting('includeCreativeCommons'));
00092
00093
00094 $enableAnnouncements = $press->getSetting('enableAnnouncements');
00095 if ($enableAnnouncements) {
00096 $enableAnnouncementsHomepage = $press->getSetting('enableAnnouncementsHomepage');
00097 if ($enableAnnouncementsHomepage) {
00098 $numAnnouncementsHomepage = $press->getSetting('numAnnouncementsHomepage');
00099 $templateMgr->assign('enableAnnouncementsHomepage', true);
00100 $announcementDao =& DAORegistry::getDAO('AnnouncementDAO');
00101 $announcements =& $announcementDao->getAnnouncementsNotExpiredByAssocId(ASSOC_TYPE_PRESS, $press->getId());
00102 $templateMgr->assign_by_ref('announcements', $announcements);
00103 if (isset($numAnnouncementsHomepage)) {
00104 $templateMgr->assign('numAnnouncementsHomepage', $numAnnouncementsHomepage);
00105 }
00106 }
00107 }
00108
00109
00110 $spotlightDao =& DAORegistry::getDAO('SpotlightDAO');
00111 $spotlights = $spotlightDao->getRandomByPressId($press->getId(), MAX_SPOTLIGHTS_VISIBLE);
00112 $templateMgr->assign('spotlights', $spotlights);
00113
00114
00115 $socialMediaDao =& DAORegistry::getDAO('SocialMediaDAO');
00116 $socialMedia =& $socialMediaDao->getEnabledForPressByPressId($press->getId());
00117 $blocks = array();
00118 while ($media =& $socialMedia->next()) {
00119 $media->replaceCodeVars();
00120 $blocks[] = $media->getCode();
00121 }
00122
00123 $templateMgr->assign_by_ref('socialMediaBlocks', $blocks);
00124
00125 $templateMgr->display('index/press.tpl');
00126 }
00127 }
00128
00129 ?>