Open Journal Systems  3.3.0
PKPNavigationMenuService.inc.php
1 <?php
2 
16 namespace PKP\Services;
17 import('lib.pkp.classes.navigationMenu.NavigationMenuItemAssignment');
18 import('lib.pkp.classes.navigationMenu.NavigationMenuItem');
19 
21 
26  public function getMenuItemTypes() {
27  \AppLocale::requireComponents(LOCALE_COMPONENT_APP_COMMON, LOCALE_COMPONENT_PKP_USER);
28  $types = array(
29  NMI_TYPE_CUSTOM => array(
30  'title' => __('manager.navigationMenus.customPage'),
31  'description' => __('manager.navigationMenus.customPage.description'),
32  ),
33  NMI_TYPE_REMOTE_URL => array(
34  'title' => __('manager.navigationMenus.remoteUrl'),
35  'description' => __('manager.navigationMenus.remoteUrl.description'),
36  ),
37  NMI_TYPE_ABOUT => array(
38  'title' => __('navigation.about'),
39  'description' => __('manager.navigationMenus.about.description'),
40  'conditionalWarning' => __('manager.navigationMenus.about.conditionalWarning'),
41  ),
42  NMI_TYPE_EDITORIAL_TEAM => array(
43  'title' => __('about.editorialTeam'),
44  'description' => __('manager.navigationMenus.editorialTeam.description'),
45  'conditionalWarning' => __('manager.navigationMenus.editorialTeam.conditionalWarning'),
46  ),
47  NMI_TYPE_SUBMISSIONS => array(
48  'title' => __('about.submissions'),
49  'description' => __('manager.navigationMenus.submissions.description'),
50  ),
51  NMI_TYPE_ANNOUNCEMENTS => array(
52  'title' => __('announcement.announcements'),
53  'description' => __('manager.navigationMenus.announcements.description'),
54  'conditionalWarning' => __('manager.navigationMenus.announcements.conditionalWarning'),
55  ),
56  NMI_TYPE_USER_LOGIN => array(
57  'title' => __('navigation.login'),
58  'description' => __('manager.navigationMenus.login.description'),
59  'conditionalWarning' => __('manager.navigationMenus.loggedIn.conditionalWarning'),
60  ),
61  NMI_TYPE_USER_REGISTER => array(
62  'title' => __('navigation.register'),
63  'description' => __('manager.navigationMenus.register.description'),
64  'conditionalWarning' => __('manager.navigationMenus.loggedIn.conditionalWarning'),
65  ),
66  NMI_TYPE_USER_DASHBOARD => array(
67  'title' => __('navigation.dashboard'),
68  'description' => __('manager.navigationMenus.dashboard.description'),
69  'conditionalWarning' => __('manager.navigationMenus.loggedOut.conditionalWarning'),
70  ),
71  NMI_TYPE_USER_PROFILE => array(
72  'title' => __('common.viewProfile'),
73  'description' => __('manager.navigationMenus.profile.description'),
74  'conditionalWarning' => __('manager.navigationMenus.loggedOut.conditionalWarning'),
75  ),
76  NMI_TYPE_ADMINISTRATION => array(
77  'title' => __('navigation.admin'),
78  'description' => __('manager.navigationMenus.administration.description'),
79  'conditionalWarning' => __('manager.navigationMenus.loggedOut.conditionalWarning'),
80  ),
81  NMI_TYPE_USER_LOGOUT => array(
82  'title' => __('user.logOut'),
83  'description' => __('manager.navigationMenus.logOut.description'),
84  'conditionalWarning' => __('manager.navigationMenus.loggedOut.conditionalWarning'),
85  ),
86  NMI_TYPE_CONTACT => array(
87  'title' => __('about.contact'),
88  'description' => __('manager.navigationMenus.contact.description'),
89  'conditionalWarning' => __('manager.navigationMenus.contact.conditionalWarning'),
90  ),
91  NMI_TYPE_SEARCH => array(
92  'title' => __('common.search'),
93  'description' => __('manager.navigationMenus.search.description'),
94  ),
95  NMI_TYPE_PRIVACY => array(
96  'title' => __('manager.setup.privacyStatement'),
97  'description' => __('manager.navigationMenus.privacyStatement.description'),
98  'conditionalWarning' => __('manager.navigationMenus.privacyStatement.conditionalWarning'),
99  ),
100  );
101 
102  \HookRegistry::call('NavigationMenus::itemTypes', array(&$types));
103 
104  return $types;
105  }
106 
111  public function getMenuItemCustomEditTemplates() {
112  $templates = array(
113  NMI_TYPE_CUSTOM => array(
114  'template' => 'core:controllers/grid/navigationMenus/customNMIType.tpl',
115  ),
116  NMI_TYPE_REMOTE_URL => array(
117  'template' => 'core:controllers/grid/navigationMenus/remoteUrlNMIType.tpl',
118  ),
119  );
120 
121  \HookRegistry::call('NavigationMenus::itemCustomTemplates', array(&$templates));
122 
123  return $templates;
124  }
125 
129  function getDisplayStatus(&$navigationMenuItem, &$navigationMenu) {
130  $request = \Application::get()->getRequest();
131  $dispatcher = $request->getDispatcher();
132  $templateMgr = \TemplateManager::getManager($request);
133 
134  $isUserLoggedIn = \Validation::isLoggedIn();
135  $isUserLoggedInAs = \Validation::isLoggedInAs();
136  $context = $request->getContext();
137  $currentUser = $request->getUser();
138 
139  $contextId = $context ? $context->getId() : CONTEXT_ID_NONE;
140 
141  // Transform an item title if the title includes a {$variable}
142  $this->transformNavMenuItemTitle($templateMgr, $navigationMenuItem);
143 
144  $menuItemType = $navigationMenuItem->getType();
145 
146  // Conditionally hide some items
147  switch ($menuItemType) {
148  case NMI_TYPE_ANNOUNCEMENTS:
149  $navigationMenuItem->setIsDisplayed($context && $context->getData('enableAnnouncements'));
150  break;
151  case NMI_TYPE_EDITORIAL_TEAM:
152  $navigationMenuItem->setIsDisplayed($context && $context->getLocalizedData('editorialTeam'));
153  break;
154  case NMI_TYPE_CONTACT:
155  $navigationMenuItem->setIsDisplayed($context && ($context->getData('mailingAddress') || $context->getData('contactName')));
156  break;
157  case NMI_TYPE_USER_REGISTER:
158  $navigationMenuItem->setIsDisplayed(!$isUserLoggedIn && !($context && $context->getData('disableUserReg')));
159  break;
160  case NMI_TYPE_USER_LOGIN:
161  $navigationMenuItem->setIsDisplayed(!$isUserLoggedIn);
162  break;
163  case NMI_TYPE_USER_LOGOUT:
164  case NMI_TYPE_USER_PROFILE:
165  case NMI_TYPE_USER_DASHBOARD:
166  $navigationMenuItem->setIsDisplayed($isUserLoggedIn);
167  break;
168  case NMI_TYPE_ADMINISTRATION:
169  $navigationMenuItem->setIsDisplayed($isUserLoggedIn && $currentUser->hasRole(array(ROLE_ID_SITE_ADMIN), CONTEXT_SITE));
170  break;
171  case NMI_TYPE_SEARCH:
172  $navigationMenuItem->setIsDisplayed($context);
173  break;
174  case NMI_TYPE_PRIVACY:
175  $navigationMenuItem->setIsDisplayed($context && $context->getLocalizedData('privacyStatement'));
176  break;
177  }
178 
179  if ($navigationMenuItem->getIsDisplayed()) {
180  // Adjust some titles
181  switch ($menuItemType) {
182  case NMI_TYPE_USER_LOGOUT:
183  if ($isUserLoggedInAs) {
184  $userName = $request->getUser() ? ' ' . $request->getUser()->getUserName() : '';
185  $navigationMenuItem->setTitle(__('user.logOutAs') . $userName, \AppLocale::getLocale());
186  }
187  break;
188  case NMI_TYPE_USER_DASHBOARD:
189  $templateMgr->assign('navigationMenuItem', $navigationMenuItem);
190  if ($currentUser->hasRole(array(ROLE_ID_MANAGER, ROLE_ID_ASSISTANT, ROLE_ID_REVIEWER, ROLE_ID_AUTHOR), $contextId) || $currentUser->hasRole(array(ROLE_ID_SITE_ADMIN), CONTEXT_SITE)) {
191  $displayTitle = $templateMgr->fetch('frontend/components/navigationMenus/dashboardMenuItem.tpl');
192  $navigationMenuItem->setTitle($displayTitle, \AppLocale::getLocale());
193  }
194  break;
195  }
196 
197  // Set the URL
198  switch ($menuItemType) {
199  case NMI_TYPE_ANNOUNCEMENTS:
200  $navigationMenuItem->setUrl($dispatcher->url(
201  $request,
202  ROUTE_PAGE,
203  null,
204  'announcement',
205  null,
206  null
207  ));
208  break;
209  case NMI_TYPE_ABOUT:
210  $navigationMenuItem->setUrl($dispatcher->url(
211  $request,
212  ROUTE_PAGE,
213  null,
214  'about',
215  null,
216  null
217  ));
218  break;
219  case NMI_TYPE_SUBMISSIONS:
220  $navigationMenuItem->setUrl($dispatcher->url(
221  $request,
222  ROUTE_PAGE,
223  null,
224  'about',
225  'submissions',
226  null
227  ));
228  break;
229  case NMI_TYPE_EDITORIAL_TEAM:
230  $navigationMenuItem->setUrl($dispatcher->url(
231  $request,
232  ROUTE_PAGE,
233  null,
234  'about',
235  'editorialTeam',
236  null
237  ));
238  break;
239  case NMI_TYPE_CONTACT:
240  $navigationMenuItem->setUrl($dispatcher->url(
241  $request,
242  ROUTE_PAGE,
243  null,
244  'about',
245  'contact',
246  null
247  ));
248  break;
249  case NMI_TYPE_USER_LOGOUT:
250  $navigationMenuItem->setUrl($dispatcher->url(
251  $request,
252  ROUTE_PAGE,
253  null,
254  'login',
255  $isUserLoggedInAs ? 'signOutAsUser' : 'signOut',
256  null
257  ));
258  break;
259  case NMI_TYPE_USER_PROFILE:
260  $navigationMenuItem->setUrl($dispatcher->url(
261  $request,
262  ROUTE_PAGE,
263  null,
264  'user',
265  'profile',
266  null
267  ));
268  break;
269  case NMI_TYPE_ADMINISTRATION:
270  $contextPath = 'index';
271  $user = $request->getUser();
272  $contextDao = \Application::getContextDAO();
273  $workingContexts = $contextDao->getAvailable($user?$user->getId():null);
274  if ($workingContexts && $workingContexts->getCount() == 1) {
275  $workingContext = $workingContexts->next();
276  $contextPath = $workingContext->getPath();
277  }
278  $navigationMenuItem->setUrl($dispatcher->url(
279  $request,
280  ROUTE_PAGE,
281  $contextPath,
282  'admin',
283  'index',
284  null
285  ));
286  break;
287  case NMI_TYPE_USER_DASHBOARD:
288  if ($currentUser->hasRole(array(ROLE_ID_MANAGER, ROLE_ID_ASSISTANT, ROLE_ID_REVIEWER, ROLE_ID_AUTHOR), $contextId) || $currentUser->hasRole(array(ROLE_ID_SITE_ADMIN), CONTEXT_SITE)) {
289  $navigationMenuItem->setUrl($dispatcher->url(
290  $request,
291  ROUTE_PAGE,
292  null,
293  'submissions',
294  null,
295  null
296  ));
297  } else {
298  $navigationMenuItem->setUrl($dispatcher->url(
299  $request,
300  ROUTE_PAGE,
301  null,
302  'user',
303  'profile',
304  null
305  ));
306  }
307 
308  break;
309  case NMI_TYPE_USER_REGISTER:
310  $navigationMenuItem->setUrl($dispatcher->url(
311  $request,
312  ROUTE_PAGE,
313  null,
314  'user',
315  'register',
316  null
317  ));
318  break;
319  case NMI_TYPE_USER_LOGIN:
320  $navigationMenuItem->setUrl($dispatcher->url(
321  $request,
322  ROUTE_PAGE,
323  null,
324  'login',
325  null,
326  null
327  ));
328  break;
329  case NMI_TYPE_CUSTOM:
330  if ($navigationMenuItem->getPath()) {
331  $path = explode("/", $navigationMenuItem->getPath());
332  $page = array_shift($path);
333  $op = array_shift($path);
334  $navigationMenuItem->setUrl($dispatcher->url(
335  $request,
336  ROUTE_PAGE,
337  null,
338  $page,
339  $op,
340  $path
341  ));
342  }
343  break;
344  case NMI_TYPE_SEARCH:
345  $navigationMenuItem->setUrl($dispatcher->url(
346  $request,
347  ROUTE_PAGE,
348  null,
349  'search',
350  'search',
351  null
352  ));
353  break;
354  case NMI_TYPE_PRIVACY:
355  $navigationMenuItem->setUrl($dispatcher->url(
356  $request,
357  ROUTE_PAGE,
358  null,
359  'about',
360  'privacy',
361  null
362  ));
363  break;
364  case NMI_TYPE_REMOTE_URL:
365  $navigationMenuItem->setUrl($navigationMenuItem->getLocalizedRemoteUrl());
366  break;
367  }
368  }
369 
370  \HookRegistry::call('NavigationMenus::displaySettings', array($navigationMenuItem, $navigationMenu));
371 
372  $templateMgr->assign('navigationMenuItem', $navigationMenuItem);
373  }
374 
375  public function loadMenuTree(&$navigationMenu) {
376  $navigationMenuItemDao = \DAORegistry::getDAO('NavigationMenuItemDAO');
377  $items = $navigationMenuItemDao->getByMenuId($navigationMenu->getId())->toArray();
378 
379  $navigationMenuItemAssignmentDao = \DAORegistry::getDAO('NavigationMenuItemAssignmentDAO');
380  $assignments = $navigationMenuItemAssignmentDao->getByMenuId($navigationMenu->getId())
381  ->toArray();
382 
383  foreach ($assignments as $assignment) {
384  foreach($items as $item) {
385  if ($item->getId() === $assignment->getMenuItemId()) {
386  $assignment->setMenuItem($item);
387  break;
388  }
389  }
390  }
391 
392  // Create an array of parent items and array of child items sorted by
393  // their parent id as the array key
394  $navigationMenu->menuTree = array();
395  $children = array();
396  foreach ($assignments as $assignment) {
397  if (!$assignment->getParentId()) {
398  $navigationMenu->menuTree[] = $assignment;
399  } else {
400  if (!isset($children[$assignment->getParentId()])) {
401  $children[$assignment->getParentId()] = array();
402  }
403 
404  $children[$assignment->getParentId()][] = $assignment;
405  }
406  }
407 
408  // Assign child items to parent in array
409  for ($i = 0; $i < count($navigationMenu->menuTree); $i++) {
410  $assignmentId = $navigationMenu->menuTree[$i]->getMenuItemId();
411  if (isset($children[$assignmentId])) {
412  $navigationMenu->menuTree[$i]->children = $children[$assignmentId];
413  }
414  }
415 
416  $navigationMenuDao = \DAORegistry::getDAO('NavigationMenuDAO');
417  $cache = $navigationMenuDao->getCache($navigationMenu->getId());
418  $json = json_encode($navigationMenu);
419  $cache->setEntireCache($json);
420  }
421 
427  public function getMenuTree(&$navigationMenu) {
428  $navigationMenuDao = \DAORegistry::getDAO('NavigationMenuDAO');
429  $cache = $navigationMenuDao->getCache($navigationMenu->getId());
430  if ($cache->cache) {
431  $navigationMenu = json_decode($cache->cache, true);
432  $navigationMenu = $this->arrayToObject('NavigationMenu', $navigationMenu);
433  $this->loadMenuTreeDisplayState($navigationMenu);
434  return;
435  }
436  $this->loadMenuTree($navigationMenu);
437  $this->loadMenuTreeDisplayState($navigationMenu);
438  }
439 
440  private function loadMenuTreeDisplayState(&$navigationMenu) {
441  foreach ($navigationMenu->menuTree as $assignment) {
442  $nmi = $assignment->getMenuItem();
443  if ($assignment->children) {
444  foreach($assignment->children as $childAssignment) {
445  $childNmi = $childAssignment->getMenuItem();
446  $this->getDisplayStatus($childNmi, $navigationMenu);
447 
448  if ($childNmi->getIsDisplayed()) {
449  $nmi->setIsChildVisible(true);
450  }
451  }
452  }
453  $this->getDisplayStatus($nmi, $navigationMenu);
454  }
455  }
456 
464  function arrayToObject($class, $array) {
465  if ($class == 'NavigationMenu') {
466  $obj = new \NavigationMenu();
467  } else if ($class == 'NavigationMenuItem') {
468  $obj = new \NavigationMenuItem();
469  } else if ($class == 'NavigationMenuItemAssignment') {
470  $obj = new \NavigationMenuItemAssignment();
471  }
472  foreach($array as $k => $v) {
473  if(strlen($k)) {
474  if(is_array($v) && $k == 'menuTree') {
475  $treeChildren = array();
476  foreach($v as $treeChild) {
477  array_push($treeChildren, $this->arrayToObject('NavigationMenuItemAssignment', $treeChild));
478  }
479  $obj->{$k} = $treeChildren;
480  } else if(is_array($v) && $k == 'navigationMenuItem') {
481  $obj->{$k} = $this->arrayToObject('NavigationMenuItem', $v); //RECURSION
482  } else if(is_array($v) && $k == 'children') {
483  $treeChildren = array();
484  foreach($v as $treeChild) {
485  array_push($treeChildren, $this->arrayToObject('NavigationMenuItemAssignment', $treeChild));
486  }
487  $obj->{$k} = $treeChildren;
488  } else {
489  $obj->{$k} = $v;
490  }
491  }
492  }
493 
494  // should call transformNavMenuItemTitle because some
495  // request don't have all template variables in place
496  if ($class == 'NavigationMenuItem') {
498  $this->transformNavMenuItemTitle($templateMgr, $obj);
499  }
500 
501  return $obj;
502  }
503 
509  public function transformNavMenuItemTitle($templateMgr, &$navigationMenuItem) {
510  $this->setNMITitleLocalized($navigationMenuItem);
511 
512  $title = $navigationMenuItem->getLocalizedTitle();
513  $prefix = '{$';
514  $postfix = '}';
515 
516  $prefixPos = strpos($title, $prefix);
517  $postfixPos = strpos($title, $postfix);
518 
519  if ($prefixPos !== false && $postfixPos !== false && ($postfixPos - $prefixPos) > 0){
520  $titleRepl = substr($title, $prefixPos + strlen($prefix), $postfixPos - $prefixPos - strlen($prefix));
521 
522  $templateReplaceTitle = $templateMgr->getTemplateVars($titleRepl);
523  if ($templateReplaceTitle) {
524  $navigationMenuItem->setTitle($templateReplaceTitle, \AppLocale::getLocale());
525  }
526  }
527  }
528 
533  public function populateNMIAssignmentContainedObjects(&$nmiAssignment) {
534  // Set NMI
535  $navigationMenuItemDao = \DAORegistry::getDAO('NavigationMenuItemDAO');
536  $nmiAssignment->setMenuItem($navigationMenuItemDao->getById($nmiAssignment->getMenuItemId()));
537 
538  // Set Children
539  $navigationMenuItemAssignmentDao = \DAORegistry::getDAO('NavigationMenuItemAssignmentDAO');
540  $nmiAssignment->children = $navigationMenuItemAssignmentDao->getByMenuIdAndParentId($nmiAssignment->getMenuId(), $nmiAssignment->getId())
541  ->toArray();
542 
543  // Recursive call to populate NMI and children properties of NMIAssignment's children
544  foreach ($nmiAssignment->children as $assignmentChild) {
545  $this->populateNMIAssignmentContainedObjects($assignmentChild);
546  }
547  }
548 
557  private function _hasNMTreeNMIAssignmentWithChildOfNMIType($navigationMenu, $navigationMenuItem, $nmiType, $isDisplayed = true) {
558  foreach($navigationMenu->menuTree as $nmiAssignment) {
559  $nmi = $nmiAssignment->getMenuItem();
560  if(isset($nmi) && $nmi->getId() == $navigationMenuItem->getId()) {
561  foreach($nmiAssignment->children as $childNmiAssignment){
562  $childNmi = $childNmiAssignment->getMenuItem();
563  if (isset($nmi) && $childNmi->getType() == $nmiType) {
564  if($isDisplayed) {
565  return $childNmi->getIsDisplayed();
566  } else {
567  return true;
568  }
569  }
570  }
571  }
572  }
573 
574  return false;
575  }
576 
581  public function setNMITitleLocalized($nmi) {
582  if ($nmi) {
583  \AppLocale::requireComponents(LOCALE_COMPONENT_PKP_COMMON, LOCALE_COMPONENT_PKP_MANAGER, LOCALE_COMPONENT_APP_COMMON, LOCALE_COMPONENT_PKP_USER);
584  if ($localisedTitle = $nmi->getLocalizedTitle()) {
585  $nmi->setTitle($localisedTitle, \AppLocale::getLocale());
586  } elseif ($nmi->getTitleLocaleKey() === '{$loggedInUsername}') {
587  $nmi->setTitle($nmi->getTitleLocaleKey(), \AppLocale::getLocale());
588  } else {
589  $nmi->setTitle(__($nmi->getTitleLocaleKey()), \AppLocale::getLocale());
590  }
591  }
592  }
593 
598  public function setAllNMILocalisedTitles($nmi) {
599  if ($nmi) {
600  $supportedFormLocales = \AppLocale::getSupportedFormLocales();
601 
602  foreach ($supportedFormLocales as $supportedFormLocale => $supportedFormLocaleValue) {
604  LOCALE_COMPONENT_PKP_COMMON,
605  LOCALE_COMPONENT_PKP_MANAGER,
606  LOCALE_COMPONENT_APP_COMMON,
607  LOCALE_COMPONENT_PKP_USER,
608  $supportedFormLocale
609  );
610 
611  if ($localisedTitle = $nmi->getTitle($supportedFormLocale)) {
612  $nmi->setTitle($localisedTitle, $supportedFormLocale);
613  } else {
614  $nmi->setTitle(__($nmi->getTitleLocaleKey(), array(), $supportedFormLocale), $supportedFormLocale);
615  }
616  }
617  }
618  }
619 
627  public function _callbackHandleCustomNavigationMenuItems($hookName, $args) {
628  $request = \Application::get()->getRequest();
629 
630  $page =& $args[0];
631  $op =& $args[1];
632 
633  // Construct a path to look for
634  $path = $page;
635  if ($op !== 'index') $path .= "/$op";
636  if ($arguments = $request->getRequestedArgs()) $path .= '/' . implode('/', $arguments);
637 
638  // Look for a static page with the given path
639  $navigationMenuItemDao = \DAORegistry::getDAO('NavigationMenuItemDAO');
640 
641  $context = $request->getContext();
642  $contextId = $context?$context->getId():CONTEXT_ID_NONE;
643  $customNMI = $navigationMenuItemDao->getByPath($contextId, $path);
644 
645  // Check if a custom NMI with the requested path existes
646  if ($customNMI) {
647  // Trick the handler into dealing with it normally
648  $page = 'pages';
649  $op = 'view';
650 
651 
652  // It is -- attach the custom NMI handler.
653  define('HANDLER_CLASS', 'NavigationMenuItemHandler');
654  import('lib.pkp.pages.navigationMenu.NavigationMenuItemHandler');
655 
657 
658  return true;
659  }
660 
661  return false;
662  }
663 }
PKP\Services
Application\getContextDAO
static getContextDAO()
Definition: Application.inc.php:137
$op
$op
Definition: lib/pkp/pages/help/index.php:18
AppLocale\requireComponents
static requireComponents()
Definition: env1/MockAppLocale.inc.php:56
PKP\Services\PKPNavigationMenuService\getMenuTree
getMenuTree(&$navigationMenu)
Definition: PKPNavigationMenuService.inc.php:427
PKP\Services\PKPNavigationMenuService\populateNMIAssignmentContainedObjects
populateNMIAssignmentContainedObjects(&$nmiAssignment)
Definition: PKPNavigationMenuService.inc.php:533
PKP\Services\PKPNavigationMenuService\getDisplayStatus
getDisplayStatus(&$navigationMenuItem, &$navigationMenu)
Definition: PKPNavigationMenuService.inc.php:129
Validation\isLoggedInAs
static isLoggedInAs()
Definition: Validation.inc.php:388
Validation\isLoggedIn
static isLoggedIn()
Definition: Validation.inc.php:376
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
Http\Client\Exception\getRequest
getRequest()
Definition: RequestAwareTrait.php:25
PKP\Services\PKPNavigationMenuService\arrayToObject
arrayToObject($class, $array)
Definition: PKPNavigationMenuService.inc.php:464
PKP\Services\PKPNavigationMenuService\transformNavMenuItemTitle
transformNavMenuItemTitle($templateMgr, &$navigationMenuItem)
Definition: PKPNavigationMenuService.inc.php:509
PKP\Services\PKPNavigationMenuService\_callbackHandleCustomNavigationMenuItems
_callbackHandleCustomNavigationMenuItems($hookName, $args)
Definition: PKPNavigationMenuService.inc.php:627
PKP\Services\PKPNavigationMenuService\getMenuItemTypes
getMenuItemTypes()
Definition: PKPNavigationMenuService.inc.php:26
PKP\Services\PKPNavigationMenuService\getMenuItemCustomEditTemplates
getMenuItemCustomEditTemplates()
Definition: PKPNavigationMenuService.inc.php:111
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
NavigationMenuItemHandler\setPage
static setPage($nmi)
Definition: NavigationMenuItemHandler.inc.php:147
PKP\Services\PKPNavigationMenuService\setNMITitleLocalized
setNMITitleLocalized($nmi)
Definition: PKPNavigationMenuService.inc.php:581
PKP\Services\PKPNavigationMenuService
Definition: PKPNavigationMenuService.inc.php:20
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
HookRegistry\call
static call($hookName, $args=null)
Definition: HookRegistry.inc.php:86
AppLocale\getLocale
static getLocale()
Definition: env1/MockAppLocale.inc.php:40
PKP\Services\PKPNavigationMenuService\loadMenuTree
loadMenuTree(&$navigationMenu)
Definition: PKPNavigationMenuService.inc.php:375
AppLocale\getSupportedFormLocales
static getSupportedFormLocales()
Definition: env1/MockAppLocale.inc.php:124
PKP\Services\PKPNavigationMenuService\setAllNMILocalisedTitles
setAllNMILocalisedTitles($nmi)
Definition: PKPNavigationMenuService.inc.php:598