Skip to content

Commit f7ccc2b

Browse files
committed
feat: do not modify the menu with simplified interface
1 parent 63e5416 commit f7ccc2b

File tree

1 file changed

+48
-73
lines changed

1 file changed

+48
-73
lines changed

inc/common.class.php

Lines changed: 48 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -754,86 +754,61 @@ public static function hookRedefineMenu($menus) {
754754
return $menus;
755755
}
756756

757-
if (plugin_formcreator_replaceHelpdesk() !== false) {
758-
$newMenu = [];
759-
$newMenu['seek_assistance'] = [
760-
'default' => Plugin::getWebDir('formcreator', false) . '/front/wizard.php',
761-
'title' => __('Seek assistance', 'formcreator'),
762-
'icon' => 'fa-fw ti ti-headset',
763-
];
764-
$newMenu['my_assistance_requests'] = [
765-
'default' => PluginFormcreatorIssue::getSearchURL(false),
766-
'title' => __('My requests for assistance', 'formcreator'),
767-
'icon' => 'fa-fw ti ti-list',
768-
];
757+
if (plugin_formcreator_replaceHelpdesk() === false) {
758+
return $menus;
759+
}
769760

770-
if (PluginFormcreatorEntityConfig::getUsedConfig('is_kb_separated', Session::getActiveEntity()) == PluginFormcreatorEntityConfig::CONFIG_KB_DISTINCT
771-
&& Session::haveRight('knowbase', KnowbaseItem::READFAQ)
772-
) {
773-
$newMenu['faq'] = $menus['faq'];
774-
$newMenu['faq']['default'] = Plugin::getWebDir('formcreator', false) . '/front/knowbaseitem.php';
775-
}
776-
if (Session::haveRight("reservation", ReservationItem::RESERVEANITEM)) {
777-
if (isset($menus['reservation'])) {
778-
$newMenu['reservation'] = $menus['reservation'];
779-
}
780-
}
781-
$rssFeedTable = RSSFeed::getTable();
782-
$criteria = [
783-
'SELECT' => "$rssFeedTable.*",
784-
'DISTINCT' => true,
785-
'FROM' => $rssFeedTable,
786-
'ORDER' => "$rssFeedTable.name"
787-
];
788-
$criteria = $criteria + RSSFeed::getVisibilityCriteria();
789-
$criteria['WHERE']["$rssFeedTable.users_id"] = ['<>', Session::getLoginUserID()];
790-
$iterator = $DB->request($criteria);
791-
$hasRssFeeds = $iterator->count() > 0;
792-
793-
if (RSSFeed::canView() && $hasRssFeeds) {
794-
$newMenu['feeds'] = [
795-
'default' => Plugin::getWebDir('formcreator', false) . '/front/wizardfeeds.php',
796-
'title' => __('Consult feeds', 'formcreator'),
797-
'icon' => 'fa-fw ti ti-rss',
798-
];
799-
}
761+
$newMenu = [];
762+
$newMenu['seek_assistance'] = [
763+
'default' => Plugin::getWebDir('formcreator', false) . '/front/wizard.php',
764+
'title' => __('Seek assistance', 'formcreator'),
765+
'icon' => 'fa-fw ti ti-headset',
766+
];
767+
$newMenu['my_assistance_requests'] = [
768+
'default' => PluginFormcreatorIssue::getSearchURL(false),
769+
'title' => __('My requests for assistance', 'formcreator'),
770+
'icon' => 'fa-fw ti ti-list',
771+
];
800772

801-
// Add plugins menus
802-
$plugin_menus = $menus['plugins']['content'] ?? [];
803-
foreach ($plugin_menus as $menu_name => $menu_data) {
804-
$menu_data['default'] = $menu_data['page'] ?? '#';
805-
$newMenu[$menu_name] = $menu_data;
773+
if (PluginFormcreatorEntityConfig::getUsedConfig('is_kb_separated', Session::getActiveEntity()) == PluginFormcreatorEntityConfig::CONFIG_KB_DISTINCT
774+
&& Session::haveRight('knowbase', KnowbaseItem::READFAQ)
775+
) {
776+
$newMenu['faq'] = $menus['faq'];
777+
$newMenu['faq']['default'] = Plugin::getWebDir('formcreator', false) . '/front/knowbaseitem.php';
778+
}
779+
if (Session::haveRight("reservation", ReservationItem::RESERVEANITEM)) {
780+
if (isset($menus['reservation'])) {
781+
$newMenu['reservation'] = $menus['reservation'];
806782
}
807-
808-
return $newMenu;
783+
}
784+
$rssFeedTable = RSSFeed::getTable();
785+
$criteria = [
786+
'SELECT' => "$rssFeedTable.*",
787+
'DISTINCT' => true,
788+
'FROM' => $rssFeedTable,
789+
'ORDER' => "$rssFeedTable.name"
790+
];
791+
$criteria = $criteria + RSSFeed::getVisibilityCriteria();
792+
$criteria['WHERE']["$rssFeedTable.users_id"] = ['<>', Session::getLoginUserID()];
793+
$iterator = $DB->request($criteria);
794+
$hasRssFeeds = $iterator->count() > 0;
795+
796+
if (RSSFeed::canView() && $hasRssFeeds) {
797+
$newMenu['feeds'] = [
798+
'default' => Plugin::getWebDir('formcreator', false) . '/front/wizardfeeds.php',
799+
'title' => __('Consult feeds', 'formcreator'),
800+
'icon' => 'fa-fw ti ti-rss',
801+
];
809802
}
810803

811-
// Using GLPI's helpdesk interface; then just modify the menu
812-
$newMenus = [];
813-
foreach ($menus as $key => $menu) {
814-
switch ($key) {
815-
case 'create_ticket':
816-
$newMenus['forms'] = [
817-
'default' => '/' . Plugin::getWebDir('formcreator', false) . '/front/formlist.php',
818-
'title' => _n('Form', 'Forms', 2, 'formcreator'),
819-
'icon' => 'fas fa-edit',
820-
];
821-
break;
822-
823-
case 'tickets':
824-
$newMenus['tickets'] = [
825-
'default' => PluginFormcreatorIssue::getSearchURL(false),
826-
'title' => PluginFormcreatorIssue::getTypeName(Session::getPluralNumber()),
827-
'icon' => 'fas fa-exclamation-circle',
828-
];
829-
break;
830-
831-
default:
832-
$newMenus[$key] = $menu;
833-
}
804+
// Add plugins menus
805+
$plugin_menus = $menus['plugins']['content'] ?? [];
806+
foreach ($plugin_menus as $menu_name => $menu_data) {
807+
$menu_data['default'] = $menu_data['page'] ?? '#';
808+
$newMenu[$menu_name] = $menu_data;
834809
}
835810

836-
return $newMenus;
811+
return $newMenu;
837812
}
838813

839814
/**

0 commit comments

Comments
 (0)