Open Journal Systems  3.3.0
NavigationMenuItemHandler.inc.php
1 <?php
2 
16 import('classes.handler.Handler');
17 
19 
21  static $nmi;
22 
23  //
24  // Implement methods from Handler.
25  //
29  function authorize($request, &$args, $roleAssignments) {
30  return parent::authorize($request, $args, $roleAssignments);
31  }
32 
33  //
34  // Public handler methods.
35  //
41  function preview($args, $request) {
42  $path = array_shift($args);
43 
44  AppLocale::requireComponents(LOCALE_COMPONENT_PKP_COMMON, LOCALE_COMPONENT_APP_COMMON, LOCALE_COMPONENT_PKP_USER);
45  $context = $request->getContext();
46  $contextId = CONTEXT_ID_NONE;
47  if ($context) {
48  $contextId = $context->getId();
49  }
50 
51  // Ensure that if we're previewing, the current user is a manager or admin.
52  $roles = $this->getAuthorizedContextObject(ASSOC_TYPE_USER_ROLES);
53  if (count(array_intersect(array(ROLE_ID_MANAGER, ROLE_ID_SITE_ADMIN), $roles))==0) {
54  fatalError('The current user is not permitted to preview.');
55  }
56 
57  // Assign the template vars needed and display
58  $templateMgr = TemplateManager::getManager($request);
59  $this->setupTemplate($request);
60 
61  $navigationMenuItemDao = DAORegistry::getDAO('NavigationMenuItemDAO'); /* @var $navigationMenuItemDao NavigationMenuItemDAO */
62 
63  $navigationMenuItem = $navigationMenuItemDao->newDataObject();
64  $navigationMenuItem->setContent((array) $request->getUserVar('content'), null);
65  $navigationMenuItem->setTitle((array) $request->getUserVar('title'), null);
66 
67  import('classes.core.Services');
68  Services::get('navigationMenu')->transformNavMenuItemTitle($templateMgr, $navigationMenuItem);
69 
70  $templateMgr->assign('title', $navigationMenuItem->getLocalizedTitle());
71 
72  $vars = array();
73  if ($context) {
74  $vars = array(
75  '{$contactName}' => $context->getData('contactName'),
76  '{$contactEmail}' => $context->getData('contactEmail'),
77  '{$supportName}' => $context->getData('supportName'),
78  '{$supportPhone}' => $context->getData('supportPhone'),
79  '{$supportEmail}' => $context->getData('supportEmail'),
80  );
81  }
82 
83  $templateMgr->assign('content', strtr($navigationMenuItem->getLocalizedContent(), $vars));
84 
85  $templateMgr->display('frontend/pages/navigationMenuItemViewContent.tpl');
86  }
87 
93  function view($args, $request) {
94  $path = array_shift($args);
95 
96  AppLocale::requireComponents(LOCALE_COMPONENT_PKP_COMMON, LOCALE_COMPONENT_APP_COMMON, LOCALE_COMPONENT_PKP_USER);
97  $context = $request->getContext();
98  $contextId = CONTEXT_ID_NONE;
99  if ($context) {
100  $contextId = $context->getId();
101  }
102 
103  // Assign the template vars needed and display
104  $templateMgr = TemplateManager::getManager($request);
105  $this->setupTemplate($request);
106 
107  $navigationMenuItemDao = DAORegistry::getDAO('NavigationMenuItemDAO'); /* @var $navigationMenuItemDao NavigationMenuItemDAO */
108 
109  $navigationMenuItem = $navigationMenuItemDao->getByPath($contextId, $path);
110 
111  if (isset(self::$nmi)) {
112  $templateMgr->assign('title', self::$nmi->getLocalizedTitle());
113 
114  $vars = array();
115  if ($context) $vars = array(
116  '{$contactName}' => $context->getData('contactName'),
117  '{$contactEmail}' => $context->getData('contactEmail'),
118  '{$supportName}' => $context->getData('supportName'),
119  '{$supportPhone}' => $context->getData('supportPhone'),
120  '{$supportEmail}' => $context->getData('supportEmail'),
121  );
122  $templateMgr->assign('content', strtr(self::$nmi->getLocalizedContent(), $vars));
123 
124  $templateMgr->display('frontend/pages/navigationMenuItemViewContent.tpl');
125  } else {
126  return false;
127  }
128 
129  }
130 
136  function index($args, $request) {
137  $request->redirect(null, null, 'view', $request->getRequestedOp());
138  }
139 
144  static function setPage($nmi) {
145  self::$nmi = $nmi;
146  }
147 }
AppLocale\requireComponents
static requireComponents()
Definition: env1/MockAppLocale.inc.php:56
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
NavigationMenuItemHandler\view
view($args, $request)
Definition: NavigationMenuItemHandler.inc.php:96
NavigationMenuItemHandler\authorize
authorize($request, &$args, $roleAssignments)
Definition: NavigationMenuItemHandler.inc.php:32
NavigationMenuItemHandler\preview
preview($args, $request)
Definition: NavigationMenuItemHandler.inc.php:44
NavigationMenuItemHandler\$nmi
static $nmi
Definition: NavigationMenuItemHandler.inc.php:24
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
PKPHandler\getAuthorizedContextObject
& getAuthorizedContextObject($assocType)
Definition: PKPHandler.inc.php:174
PKPHandler\setupTemplate
setupTemplate($request)
Definition: PKPHandler.inc.php:466
NavigationMenuItemHandler\setPage
static setPage($nmi)
Definition: NavigationMenuItemHandler.inc.php:147
NavigationMenuItemHandler
Handle requests for navigationMenuItem functions.
Definition: NavigationMenuItemHandler.inc.php:18
fatalError
if(!function_exists('import')) fatalError($reason)
Definition: functions.inc.php:32
Handler
Base request handler application class.
Definition: Handler.inc.php:18
NavigationMenuItemHandler\index
index($args, $request)
Definition: NavigationMenuItemHandler.inc.php:139
PKPServices\get
static get($service)
Definition: PKPServices.inc.php:49