Open Preprint Systems  3.3.0
NavigationMenuService.inc.php
1 <?php
2 
16 namespace APP\Services;
17 
19 define('NMI_TYPE_ARCHIVES', 'NMI_TYPE_ARCHIVES');
20 
22 
26  public function __construct() {
27 
28  \HookRegistry::register('NavigationMenus::itemTypes', array($this, 'getMenuItemTypesCallback'));
29  \HookRegistry::register('NavigationMenus::displaySettings', array($this, 'getDisplayStatusCallback'));
30  }
31 
37  public function getMenuItemTypesCallback($hookName, $args) {
38  $types =& $args[0];
39 
40  \AppLocale::requireComponents(LOCALE_COMPONENT_APP_COMMON, LOCALE_COMPONENT_PKP_USER, LOCALE_COMPONENT_APP_EDITOR);
41 
42  $opsTypes = array(
43  NMI_TYPE_ARCHIVES => array(
44  'title' => __('navigation.archives'),
45  'description' => __('manager.navigationMenus.archives.description'),
46  ),
47  );
48 
49  $types = array_merge($types, $opsTypes);
50  }
51 
57  function getDisplayStatusCallback($hookName, $args) {
58  $navigationMenuItem =& $args[0];
59 
60  $request = \Application::get()->getRequest();
61  $dispatcher = $request->getDispatcher();
62  $templateMgr = \TemplateManager::getManager(\Application::get()->getRequest());
63 
64  $isUserLoggedIn = \Validation::isLoggedIn();
65  $isUserLoggedInAs = \Validation::isLoggedInAs();
66  $context = $request->getContext();
67 
68  $this->transformNavMenuItemTitle($templateMgr, $navigationMenuItem);
69 
70  $menuItemType = $navigationMenuItem->getType();
71 
72  // Conditionally hide some items
73  switch ($menuItemType) {
74  case NMI_TYPE_ARCHIVES:
75  $navigationMenuItem->setIsDisplayed($context && $context->getData('publishingMode') != PUBLISHING_MODE_NONE);
76  break;
77  }
78 
79  if ($navigationMenuItem->getIsDisplayed()) {
80 
81  // Set the URL
82  switch ($menuItemType) {
83  case NMI_TYPE_ARCHIVES:
84  $navigationMenuItem->setUrl($dispatcher->url(
85  $request,
86  ROUTE_PAGE,
87  null,
88  'preprints',
89  null,
90  null
91  ));
92  break;
93  }
94  }
95  }
96 }
APP\Services\NavigationMenuService\getDisplayStatusCallback
getDisplayStatusCallback($hookName, $args)
Definition: NavigationMenuService.inc.php:57
AppLocale\requireComponents
static requireComponents()
Definition: env1/MockAppLocale.inc.php:56
Validation\isLoggedInAs
static isLoggedInAs()
Definition: Validation.inc.php:388
APP\Services\NavigationMenuService\getMenuItemTypesCallback
getMenuItemTypesCallback($hookName, $args)
Definition: NavigationMenuService.inc.php:37
Validation\isLoggedIn
static isLoggedIn()
Definition: Validation.inc.php:376
APP\Services\NavigationMenuService
Definition: NavigationMenuService.inc.php:21
PKP\Services\PKPNavigationMenuService\transformNavMenuItemTitle
transformNavMenuItemTitle($templateMgr, &$navigationMenuItem)
Definition: PKPNavigationMenuService.inc.php:509
APP\Services\NavigationMenuService\__construct
__construct()
Definition: NavigationMenuService.inc.php:26
APP\Services\NMI_TYPE_ARCHIVES
const NMI_TYPE_ARCHIVES
Definition: NavigationMenuService.inc.php:19
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1226
APP\Services
Definition: ContextService.inc.php:15
HookRegistry\register
static register($hookName, $callback, $hookSequence=HOOK_SEQUENCE_NORMAL)
Definition: HookRegistry.inc.php:70
PKP\Services\PKPNavigationMenuService
Definition: PKPNavigationMenuService.inc.php:20
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235