00001 <?php
00002
00015 import('controllers.grid.content.announcements.AnnouncementGridHandler');
00016
00017 class ViewAnnouncementGridHandler extends AnnouncementGridHandler {
00021 function ViewAnnouncementGridHandler() {
00022 parent::AnnouncementGridHandler();
00023 }
00024
00025
00029 function initialize($request) {
00030 parent::initialize($request);
00031
00032 $displayLimit = (boolean) $request->getUserVar('displayLimit');
00033 if ($displayLimit) {
00034 $press =& $request->getPress();
00035 $numAnnouncementsHomepage = $press->getSetting('numAnnouncementsHomepage');
00036 $gridElements = $this->getGridDataElements($request);
00037 if (count($gridElements) > $numAnnouncementsHomepage) {
00038 $dispatcher =& $request->getDispatcher();
00039 import('lib.pkp.classes.linkAction.request.RedirectAction');
00040 $actionRequest = new RedirectAction($dispatcher->url($request, ROUTE_PAGE, null, 'announcement'));
00041 $moreAnnouncementsAction = new LinkAction('moreAnnouncements', $actionRequest, __('announcement.moreAnnouncements'));
00042 $this->addAction($moreAnnouncementsAction, GRID_ACTION_POSITION_BELOW);
00043
00044 $limitedElements = array();
00045 for ($i = 0; $i < $numAnnouncementsHomepage; $i++) {
00046 $limitedElements[key($gridElements)] = current($gridElements);
00047 next($gridElements);
00048 }
00049 $this->setGridDataElements($limitedElements);
00050 }
00051 }
00052 }
00053 }
00054
00055 ?>