XCL Web Application Platform 2.5.0
The XoopsCube Legacy Project
Loading...
Searching...
No Matches
legacy_mainmenu.php
1<?php
13
19function b_legacy_mainmenu_show($options)
20{
21 $root =& XCube_Root::getSingleton();
22 $xoopsModule =& $root->mContext->mXoopsModule;
23 $xoopsUser =& $root->mController->mRoot->mContext->mXoopsUser;
24
25 $block = [];
26 $block['_display_'] = true;
27 //$block['icon'] = isset($options[1])?$options[1]:'';
28 $block['icon'] = $options[1] ?? '';
29 $module_handler =& xoops_gethandler('module');
30 $criteria = new CriteriaCompo(new Criteria('hasmain', 1));
31 $criteria->add(new Criteria('isactive', 1));
32 $criteria->add(new Criteria('weight', 0, '>'));
33 $modules =& $module_handler->getObjects($criteria, true);
34 $moduleperm_handler =& xoops_gethandler('groupperm');
35 $groups = is_object($xoopsUser) ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS;
36 $read_allowed = $moduleperm_handler->getItemIds('module_read', $groups);
37 $all_links = (int)$options[0];
38 $mid = is_object($xoopsModule)?$xoopsModule->getVar('mid', 'N'):'';
39 foreach (array_keys($modules) as $i) {
40 if (in_array($i, $read_allowed)) {
41 $module = &$modules[$i];
42 $blockm = &$block['modules'][$i];
43 $blockm['name'] = $module->getVar('name');
44 if (!empty($options[1])) {
45 $blockm['icon'] = $module->getInfo('icon'); // TODO @gigamaster XCL v2.3.x Module icon option
46 }
47 $moddir = XOOPS_URL.'/modules/';
48 $moddir .= $blockm['directory'] = $module->getVar('dirname', 'N');
49 $info = $module->getInfo();
50 $sublinks =& $module->subLink();
51 if ((is_countable($sublinks) ? count($sublinks) : 0)>0 && ($all_links || $i==$mid)) {
52 foreach ($sublinks as $sublink) {
53 $blockm['sublinks'][] = ['name' => $sublink['name'], 'url' => $moddir . '/' . $sublink['url']];
54 }
55 } else {
56 $blockm['sublinks'] = [];
57 }
58 }
59 }
60 return $block;
61}
62
63function b_legacy_mainmenu_edit($options)
64{
65 $off='checked="checked"';
66 $on='';
67 if ($options[0]) {
68 $on = $off;
69 $off = '';
70 }
71 $icon_off = 'checked="checked"';
72 $icon_on = '';
73 if ($options[1]) {
74 $icon_on = $icon_off;
75 $icon_off = '';
76 }
77 return '<div><p>' . _MB_LEGACY_MAINMENU_EXPAND_SUB .
78 "<input type=\"radio\" name=\"options[0]\" value=\"0\" $off>" . _NO .
79 " &nbsp; <input type=\"radio\" name=\"options[0]\" value=\"1\" $on>" . _YES .
80 "</p><p>Show module icon
81 <input type=\"radio\" name=\"options[1]\" value=\"0\" $icon_off>" . _NO .
82 " &nbsp; <input type=\"radio\" name=\"options[1]\" value=\"1\" $icon_on>" . _YES . '
83 </p></div>';
84}