One Hat Cyber Team
Your IP :
216.73.216.182
Server IP :
203.175.9.166
Server :
Linux tanggamus.iixcp.rumahweb.net 5.14.0-427.28.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 2 03:44:10 EDT 2024 x86_64
Server Software :
LiteSpeed
PHP Version :
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
cite5577
/
www
/
classes
/
services
/
Edit File:
NavigationMenuService.inc.php
<?php /** * @file classes/services/NavigationMenuService.inc.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2000-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class NavigationMenuService * @ingroup services * * @brief Helper class that encapsulates NavigationMenu business logic */ namespace APP\Services; /** types for all ojs default navigationMenuItems */ define('NMI_TYPE_SUBSCRIPTIONS', 'NMI_TYPE_SUBSCRIPTIONS'); define('NMI_TYPE_MY_SUBSCRIPTIONS', 'NMI_TYPE_MY_SUBSCRIPTIONS'); define('NMI_TYPE_CURRENT', 'NMI_TYPE_CURRENT'); define('NMI_TYPE_ARCHIVES', 'NMI_TYPE_ARCHIVES'); class NavigationMenuService extends \PKP\Services\PKPNavigationMenuService { /** * Initialize hooks for extending PKPSubmissionService */ public function __construct() { \HookRegistry::register('NavigationMenus::itemTypes', array($this, 'getMenuItemTypesCallback')); \HookRegistry::register('NavigationMenus::displaySettings', array($this, 'getDisplayStatusCallback')); } /** * Return all default navigationMenuItemTypes. * @param $hookName string * @param $args array of arguments passed */ public function getMenuItemTypesCallback($hookName, $args) { $types =& $args[0]; \AppLocale::requireComponents(LOCALE_COMPONENT_APP_COMMON, LOCALE_COMPONENT_PKP_USER, LOCALE_COMPONENT_APP_EDITOR); $ojsTypes = array( NMI_TYPE_CURRENT => array( 'title' => __('editor.issues.currentIssue'), 'description' => __('manager.navigationMenus.current.description'), ), NMI_TYPE_ARCHIVES => array( 'title' => __('navigation.archives'), 'description' => __('manager.navigationMenus.archives.description'), ), NMI_TYPE_SUBSCRIPTIONS => array( 'title' => __('navigation.subscriptions'), 'description' => __('manager.navigationMenus.subscriptions.description'), 'conditionalWarning' => __('manager.navigationMenus.subscriptions.conditionalWarning'), ), NMI_TYPE_MY_SUBSCRIPTIONS => array( 'title' => __('user.subscriptions.mySubscriptions'), 'description' => __('manager.navigationMenus.mySubscriptions.description'), 'conditionalWarning' => __('manager.navigationMenus.mySubscriptions.conditionalWarning'), ), ); $types = array_merge($types, $ojsTypes); } /** * Callback for display menu item functionallity * @param $hookName string * @param $args array of arguments passed */ function getDisplayStatusCallback($hookName, $args) { $navigationMenuItem =& $args[0]; $request = \Application::get()->getRequest(); $dispatcher = $request->getDispatcher(); $templateMgr = \TemplateManager::getManager(\Application::get()->getRequest()); $isUserLoggedIn = \Validation::isLoggedIn(); $isUserLoggedInAs = \Validation::isLoggedInAs(); $context = $request->getContext(); $this->transformNavMenuItemTitle($templateMgr, $navigationMenuItem); $menuItemType = $navigationMenuItem->getType(); // Conditionally hide some items switch ($menuItemType) { case NMI_TYPE_CURRENT: case NMI_TYPE_ARCHIVES: $navigationMenuItem->setIsDisplayed($context && $context->getData('publishingMode') != PUBLISHING_MODE_NONE); break; case NMI_TYPE_SUBSCRIPTIONS: if ($context) { $paymentManager = \Application::getPaymentManager($context); $navigationMenuItem->setIsDisplayed($context->getData('paymentsEnabled') && $paymentManager->isConfigured()); } break; case NMI_TYPE_MY_SUBSCRIPTIONS: if ($context) { $paymentManager = \Application::getPaymentManager($context); $navigationMenuItem->setIsDisplayed(\Validation::isLoggedIn() && $context->getData('paymentsEnabled') && $paymentManager->isConfigured() && $context->getData('publishingMode') == PUBLISHING_MODE_SUBSCRIPTION); } break; } if ($navigationMenuItem->getIsDisplayed()) { // Set the URL switch ($menuItemType) { case NMI_TYPE_CURRENT: $navigationMenuItem->setUrl($dispatcher->url( $request, ROUTE_PAGE, null, 'issue', 'current', null )); break; case NMI_TYPE_ARCHIVES: $navigationMenuItem->setUrl($dispatcher->url( $request, ROUTE_PAGE, null, 'issue', 'archive', null )); break; case NMI_TYPE_SUBSCRIPTIONS: $navigationMenuItem->setUrl($dispatcher->url( $request, ROUTE_PAGE, null, 'about', 'subscriptions', null )); break; case NMI_TYPE_MY_SUBSCRIPTIONS: $navigationMenuItem->setUrl($dispatcher->url( $request, ROUTE_PAGE, null, 'user', 'subscriptions', null )); break; } } } }
Simpan