1: <?php
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27: define('XOOPS_CPFUNC_LOADED', 1);
28:
29: function xoops_cp_header()
30: {
31:
32:
33:
34:
35:
36: $root=&XCube_Root::getSingleton();
37: require_once XOOPS_ROOT_PATH . "/modules/legacy/kernel/Legacy_AdminControllerStrategy.class.php";
38:
39: $strategy =new Legacy_AdminControllerStrategy($root->mController);
40:
41: $root->mController->setStrategy($strategy);
42: $root->mController->setupModuleContext();
43: $root->mController->_mStrategy->setupModuleLanguage();
44:
45: require_once XOOPS_ROOT_PATH."/header.php";
46: }
47:
48: function xoops_cp_footer()
49: {
50: require_once XOOPS_ROOT_PATH."/footer.php";
51: }
52:
53:
54: function OpenTable()
55: {
56: echo "<table width='100%' border='0' cellspacing='1' cellpadding='8' style='border: 2px solid #2F5376;'><tr class='bg4'><td valign='top'>\n";
57: }
58:
59: function CloseTable()
60: {
61: echo '</td></tr></table>';
62: }
63:
64: function themecenterposts($title, $content)
65: {
66: echo '<table cellpadding="4" cellspacing="1" width="98%" class="outer"><tr><td class="head">'.$title.'</td></tr><tr><td><br />'.$content.'<br /></td></tr></table>';
67: }
68:
69: function myTextForm($url , $value)
70: {
71: return '<form action="'.$url.'" method="post"><input type="submit" value="'.$value.'" /></form>';
72: }
73:
74: function xoopsfwrite()
75: {
76: if ($_SERVER['REQUEST_METHOD'] != 'POST') {
77: return false;
78: } else {
79:
80: }
81: if (!xoops_refcheck()) {
82: return false;
83: } else {
84:
85: }
86: return true;
87: }
88:
89: 90: 91:
92: function xoops_module_get_admin_menu()
93: {
94: 95: 96: 97: 98:
99: $abscissa_step = 90;
100: $abscissa_offset = 15;
101: $rightarrow = "";
102:
103: $ordinata_step = 15;
104: $ordinata[1] = 150-$ordinata_step;
105: $moveLayers = array();
106: $shutdown = array();
107: $firstleveltable = array();
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118: $js = "";
119: $maxlevel = 0;
120: $cnt = 1;
121: $module_handler =& xoops_gethandler('module');
122: $criteria = new CriteriaCompo();
123: $criteria->add(new Criteria('hasadmin', 1));
124: $criteria->add(new Criteria('isactive', 1));
125: $criteria->setSort('mid');
126: $mods =& $module_handler->getObjects($criteria);
127: foreach ($mods as $mod) {
128:
129:
130:
131:
132:
133: $tree[$cnt][0] = 1;
134: $tree[$cnt][5] = "<img src='\".XOOPS_URL.\"/modules/".$mod->getVar('dirname')."/".$mod->getInfo('image')."' alt='' />";
135: $tree[$cnt][1] = $mod->getVar('name');
136: $tree[$cnt][2] = "\".XOOPS_URL.\"/modules/".$mod->getVar('dirname')."/".trim($mod->getInfo('adminindex'));
137: $tree[$cnt][3] = "";
138: $tree[$cnt][4] = $mod->getVar('mid');
139: $tree[$cnt][6] = "<b>\"._VERSION.\":</b> ".round($mod->getVar('version')/100 , 2)."<br /><b>\"._DESCRIPTION.\":</b> ".$mod->getInfo('description');
140: $layer_label[$cnt] = "L" . $cnt;
141: if ( $tree[$cnt][0] > $maxlevel ) {
142: $maxlevel = $tree[$cnt][0];
143: }
144: $cnt++;
145: $adminmenu = $mod->getAdminMenu();
146: if ($mod->getVar('hasnotification') || ($mod->getInfo('config') && is_array($mod->getInfo('config'))) || ($mod->getInfo('comments') && is_array($mod->getInfo('comments')))) {
147: $adminmenu[] = array('link' => '".XOOPS_URL."/modules/system/admin.php?fct=preferences&op=showmod&mod='.$mod->getVar('mid'), 'title' => _PREFERENCES, 'absolute' => true);
148: }
149: if (!empty($adminmenu)) {
150: foreach ( $adminmenu as $menuitem ) {
151: $menuitem['link'] = trim($menuitem['link']);
152: $menuitem['target'] = isset($menuitem['target']) ? trim($menuitem['target']) : '';
153: $tree[$cnt][0] = 2;
154: $tree[$cnt][1] = trim($menuitem['title']);
155: if (isset($menuitem['absolute']) && $menuitem['absolute']) {
156: $tree[$cnt][2] = (empty($menuitem['link'])) ? "#" : $menuitem['link'];
157: } else {
158: $tree[$cnt][2] = (empty($menuitem['link'])) ? "#" : "\".XOOPS_URL.\"/modules/".$mod->getVar('dirname')."/".$menuitem['link'];
159: }
160: $tree[$cnt][3] = (empty($menuitem['target'])) ? "" : $menuitem['target'];
161: $tree[$cnt][4] = $mod->getVar('mid');
162: $layer_label[$cnt] = "L" . $cnt;
163: if ($tree[$cnt][0] > $maxlevel) {
164: $maxlevel = $tree[$cnt][0];
165: }
166: $cnt++;
167: }
168: }
169: 170:
171: }
172: $tmpcount = count($tree);
173: $tree[$tmpcount+1][0] = 0;
174: for ( $i = 0; $i < $maxlevel; $i++) {
175: $abscissa[$i] = $i * $abscissa_step + $abscissa_offset;
176: }
177: for ( $cnt = 1; $cnt <= $tmpcount; $cnt++) {
178:
179:
180: $layername[$tree[$cnt][0]] = $layer_label[$cnt];
181:
182:
183: for ( $i = $tree[$cnt][0] + 1; $i < $maxlevel; $i++) {
184: $ordinata[$i] = $ordinata[$i-1] + 1.5*$ordinata_step;
185: }
186:
187: if ($tree[$cnt][0] < $maxlevel) {
188: $ordinata[$tree[$cnt][0]] += $ordinata_step;
189: }
190: if ($tree[$cnt+1][0]>$tree[$cnt][0] && $cnt<$tmpcount) {
191:
192: $layer[$layer_label[$cnt]] = "";
193:
194: $js .= "function popUp" . $layer_label[$cnt] . "() {\n" . "shutdown();\n";
195: for ($i=1; $i<=$tree[$cnt][0]; $i++) {
196: $js .= "popUp(\\\"" . $layername[$i] . "\\\",true);\n";
197: }
198: $js .= "}\n";
199:
200:
201: if (!isset($moveLayers[$tree[$cnt][4]])) {
202: $moveLayers[$tree[$cnt][4]] = "setleft('" . $layer_label[$cnt] . "'," . $abscissa[$tree[$cnt][0]] . ");\n";
203: } else {
204: $moveLayers[$tree[$cnt][4]] .= "setleft('" . $layer_label[$cnt] . "'," . $abscissa[$tree[$cnt][0]] . ");\n";
205: }
206: if (!isset($moveLayers[$tree[$cnt][4]])) {
207: $moveLayers[$tree[$cnt][4]] = "settop('" . $layer_label[$cnt] . "'," . $ordinata[$tree[$cnt][0]] . ");\n";
208: } else {
209: $moveLayers[$tree[$cnt][4]] .= "settop('" . $layer_label[$cnt] . "'," . $ordinata[$tree[$cnt][0]] . ");\n";
210: }
211:
212:
213:
214: if (!isset($shutdown[$tree[$cnt][4]])) {
215: $shutdown[$tree[$cnt][4]] = "popUp('" . $layer_label[$cnt] . "',false);\n";
216: } else {
217: $shutdown[$tree[$cnt][4]] .= "popUp('" . $layer_label[$cnt] . "',false);\n";
218: }
219: }
220: if ($tree[$cnt+1][0]>$tree[$cnt][0] && $cnt<$tmpcount) {
221:
222: $currentarrow = $rightarrow;
223: } else {
224:
225: $currentarrow = "";
226: }
227:
228: $currentlink = $tree[$cnt][2];
229:
230: 231: 232: 233: 234: 235: 236: 237: 238:
239: if ($tree[$cnt][3] != "") {
240: $currenttarget = " target='" . $tree[$cnt][3] . "'";
241: } else {
242: $currenttarget = "";
243: }
244: if ($tree[$cnt][0] > 1) {
245:
246:
247: if ( $tree[$cnt+1][0] > $tree[$cnt][0] && $cnt < $tmpcount ) {
248: $onmouseover = " onmouseover='moveLayerY(\\\"" . $layer_label[$cnt] . "\\\", currentY) ; popUp" . $layer_label[$cnt] . "();";
249: $onmouseover = " onmouseover='moveLayerY(\\\"" . $layer_label[$cnt] . "\\\", currentY, event) ; popUp" . $layer_label[$cnt] . "();";
250: } else {
251: $onmouseover = " onmouseover='popUp" . $layername[$tree[$cnt][0]-1] . "();";
252: }
253: $layer[$layername[$tree[$cnt][0]-1]] .= "<img src='\".XOOPS_URL.\"/images/pointer.gif' width='8' height='8' alt='' /> <a href='" . $currentlink . "'" . $onmouseover . "'" . $currenttarget . ">" .$tree[$cnt][1]. "</a>" . $currentarrow . "<br />\n";
254: } elseif ($tree[$cnt][0] == 1) {
255:
256:
257: if ($tree[$cnt+1][0]>$tree[$cnt][0] && $cnt<$tmpcount) {
258:
259: $onmouseover = " onmouseover='moveLayerY(\\\"" . $layer_label[$cnt] . "\\\", currentY) ; popUp" . $layer_label[$cnt] . "();";
260: $onmouseover = " onmouseover='moveLayerY(\\\"" . $layer_label[$cnt] . "\\\", currentY,event) ; popUp" . $layer_label[$cnt] . "();";
261: } else {
262:
263: $onmouseover = " onmouseover='shutdown();";
264: }
265: if (!isset($firstleveltable[$tree[$cnt][4]])) {
266: $firstleveltable[$tree[$cnt][4]] = "<a href='" . $currentlink . "'" . $onmouseover . "'" . $currenttarget . ">" . $tree[$cnt][5] . "</a>" . $currentarrow . "<br />\n";
267: } else {
268: $firstleveltable[$tree[$cnt][4]] .= "<a href='" . $currentlink . "'" . $onmouseover . "'" . $currenttarget . ">" . $tree[$cnt][5] . "</a>" . $currentarrow . "<br />\n";
269: }
270: }
271: }
272:
273: $cellpadding = 10;
274: $width = $abscissa_step - $cellpadding;
275: $menu_layers = "";
276: for ( $cnt = 1; $cnt <= $tmpcount; $cnt++ ) {
277: if (!($tree[$cnt+1][0]<=$tree[$cnt][0])) {
278: $menu_layers .= "<div id='".$layer_label[$cnt]."' style='position: absolute; visibility: hidden; z-index:1000;'><table class='outer' width='150' cellspacing='1'><tr><th nowrap='nowrap'>".$tree[$cnt][1]."</th></tr><tr><td class='even' nowrap='nowrap'>".$layer[$layer_label[$cnt]]."<div style='margin-top: 5px; font-size: smaller; text-align: right;'><a href='#' onmouseover='shutdown();'>["._CLOSE."]</a></div></td></tr><tr><th style='font-size: smaller; text-align: left;'>".$tree[$cnt][5]."<br />".$tree[$cnt][6]."</th></tr></table></div>\n";
279: }
280: }
281: $menu_layers .= "<script language='JavaScript'>\n<!--\nmoveLayers();\nloaded = 1;\n// -->\n</script>\n";
282: $content = "<"."?php\n";
283: $content .= "\$xoops_admin_menu_js = \"".$js."\";\n";
284: foreach ( $moveLayers as $k => $v ){
285: $content .= "\$xoops_admin_menu_ml[$k] = \"".$v."\";\n";
286: }
287: foreach ( $shutdown as $k => $v ){
288: $content .= "\$xoops_admin_menu_sd[$k] = \"".$v."\";\n";
289: }
290: foreach ( $firstleveltable as $k => $v ){
291: $content .= "\$xoops_admin_menu_ft[$k] = \"".$v."\";\n";
292: }
293: $content .= "\$xoops_admin_menu_dv = \"".$menu_layers."\";\n";
294: $content .= "\n?".">";
295: return $content;
296: }
297:
298: function xoops_module_write_admin_menu($content)
299: {
300: if (!xoopsfwrite()) {
301: return false;
302: }
303: $filename = XOOPS_CACHE_PATH.'/adminmenu.php';
304: if ( !$file = fopen($filename, "w") ) {
305: echo 'failed open file';
306: return false;
307: }
308: if ( fwrite($file, $content) == -1 ) {
309: echo 'failed write file';
310: return false;
311: }
312: fclose($file);
313: return true;
314: }
315: ?>
316: