1: | <?php
|
2: |
|
3: | |
4: | |
5: | |
6: | |
7: | |
8: | |
9: | |
10: | |
11: | |
12: | |
13: | |
14: | |
15: | |
16: | |
17: |
|
18: | class ModuleAdmin
|
19: | {
|
20: | private $_itemButton = array();
|
21: | private $_itemInfoBox = array();
|
22: | private $_itemInfoBoxLine = array();
|
23: | private $_itemConfigBoxLine = array();
|
24: |
|
25: | |
26: | |
27: |
|
28: | private $_obj;
|
29: |
|
30: | |
31: | |
32: |
|
33: | public function __construct()
|
34: | {
|
35: | global $xoopsModule;
|
36: | $this->_obj =& $xoopsModule;
|
37: | $this->loadLanguage();
|
38: | }
|
39: |
|
40: | |
41: | |
42: | |
43: | |
44: |
|
45: | private function addAssets()
|
46: | {
|
47: | static $added;
|
48: |
|
49: | if (empty($added) && !empty($GLOBALS['xoTheme'])) {
|
50: | $added = true;
|
51: | $GLOBALS['xoTheme']->addStylesheet("Frameworks/moduleclasses/moduleadmin/css/admin.css");
|
52: | }
|
53: | }
|
54: |
|
55: | |
56: | |
57: |
|
58: | public function getInfo()
|
59: | {
|
60: | $infoArray = array();
|
61: | if (!isset($infoArray) || empty($infoArray)) {
|
62: | $infoArray = array();
|
63: | $infoArray['version'] = $this->getVersion();
|
64: | $infoArray['releasedate'] = $this->getReleaseDate();
|
65: | $infoArray['methods'] = $this->getClassMethods();
|
66: | }
|
67: |
|
68: | return $infoArray;
|
69: | }
|
70: |
|
71: | |
72: | |
73: | |
74: |
|
75: | public function getVersion()
|
76: | {
|
77: | |
78: | |
79: |
|
80: | include_once __DIR__ . '/xoops_version.php';
|
81: | $version = XOOPS_FRAMEWORKS_MODULEADMIN_VERSION;
|
82: |
|
83: | return $version;
|
84: | }
|
85: |
|
86: | |
87: | |
88: | |
89: |
|
90: | public function getReleaseDate()
|
91: | {
|
92: | |
93: | |
94: |
|
95: | include_once __DIR__ . '/xoops_version.php';
|
96: | $releasedate = XOOPS_FRAMEWORKS_MODULEADMIN_RELEASEDATE;
|
97: |
|
98: | return $releasedate;
|
99: | }
|
100: |
|
101: | |
102: | |
103: | |
104: | |
105: |
|
106: | public function getClassMethods()
|
107: | {
|
108: | $myMethods = get_class_methods(__CLASS__);
|
109: |
|
110: | return $myMethods;
|
111: | }
|
112: |
|
113: |
|
114: |
|
115: |
|
116: |
|
117: |
|
118: | |
119: | |
120: |
|
121: | public function loadLanguage()
|
122: | {
|
123: | $language = $GLOBALS['xoopsConfig']['language'];
|
124: | if (!file_exists($fileinc = XOOPS_ROOT_PATH . "/Frameworks/moduleclasses/moduleadmin/language/{$language}/main.php")) {
|
125: | if (!file_exists($fileinc = XOOPS_ROOT_PATH . '/Frameworks/moduleclasses/moduleadmin/language/english/main.php')) {
|
126: | return false;
|
127: | }
|
128: | }
|
129: | $ret = include_once $fileinc;
|
130: |
|
131: | return $ret;
|
132: | }
|
133: |
|
134: |
|
135: |
|
136: |
|
137: |
|
138: | |
139: | |
140: |
|
141: | public function renderMenuIndex()
|
142: | {
|
143: | $this->addAssets();
|
144: | $path = XOOPS_URL . '/modules/' . $this->_obj->getVar('dirname') . '/';
|
145: | $pathsystem = XOOPS_URL . '/modules/system/';
|
146: | $this->_obj->loadAdminMenu();
|
147: | $ret = "<div class=\"rmmenuicon\">\n";
|
148: | foreach (array_keys($this->_obj->adminmenu) as $i) {
|
149: | if ($this->_obj->adminmenu[$i]['link'] !== 'admin/index.php') {
|
150: | $ret .= "<a href=\"../" . $this->_obj->adminmenu[$i]['link'] . "\" title=\"" . (isset($this->_obj->adminmenu[$i]['desc']) ? $this->_obj->adminmenu[$i]['desc'] : '') . "\">";
|
151: |
|
152: |
|
153: | $ret .= "<img src=\"" . (filter_var($this->_obj->adminmenu[$i]['icon'], FILTER_VALIDATE_URL) ? $this->_obj->adminmenu[$i]['icon'] : $path . $this->_obj->adminmenu[$i]['icon']) . "\" alt=\"" . $this->_obj->adminmenu[$i]['title'] . "\" />";
|
154: |
|
155: | $ret .= '<span>' . $this->_obj->adminmenu[$i]['title'] . '</span>';
|
156: | $ret .= '</a>';
|
157: | }
|
158: | }
|
159: | if ($this->_obj->getInfo('help')) {
|
160: | if (substr(XOOPS_VERSION, 0, 9) >= 'XOOPS 2.5') {
|
161: | $ret .= "<a href=\"" . $pathsystem . 'help.php?mid=' . $this->_obj->getVar('mid', 's') . '&' . $this->_obj->getInfo('help') . "\" title=\"" . _AM_SYSTEM_HELP . "\">";
|
162: | $ret .= "<img width=\"32px\" src=\"" . XOOPS_URL . "/Frameworks/moduleclasses/icons/32/help.png\" alt=\"" . _AM_SYSTEM_HELP . "\" /> ";
|
163: | $ret .= '<span>' . _AM_SYSTEM_HELP . '</span>';
|
164: | $ret .= '</a>';
|
165: | }
|
166: | }
|
167: | $ret .= "</div>\n<div style=\"clear: both;\"></div>\n";
|
168: |
|
169: | return $ret;
|
170: | }
|
171: |
|
172: |
|
173: |
|
174: |
|
175: |
|
176: | |
177: | |
178: | |
179: | |
180: | |
181: |
|
182: | public function renderButton($position = 'right', $delimeter = ' ')
|
183: | {
|
184: | $this->addAssets();
|
185: | $path = XOOPS_URL . '/Frameworks/moduleclasses/icons/32/';
|
186: | switch ($position) {
|
187: | default:
|
188: | case 'right':
|
189: | $ret = "<div class=\"floatright\">\n";
|
190: | break;
|
191: |
|
192: | case 'left':
|
193: | $ret = "<div class=\"floatleft\">\n";
|
194: | break;
|
195: |
|
196: | case 'center':
|
197: | $ret = "<div class=\"aligncenter\">\n";
|
198: | }
|
199: | $ret .= "<div class=\"xo-buttons\">\n";
|
200: | foreach (array_keys($this->_itemButton) as $i) {
|
201: | $ret .= "<a class='ui-corner-all tooltip' href='" . $this->_itemButton[$i]['link'] . "' title='" . $this->_itemButton[$i]['title'] . "' " . $this->_itemButton[$i]['extra'] . '>';
|
202: | $ret .= "<img src='"
|
203: |
|
204: |
|
205: | . (filter_var($this->_itemButton[$i]['icon'], FILTER_VALIDATE_URL) ? $this->_itemButton[$i]['icon'] : $path . $this->_itemButton[$i]['icon']) . "' title='" . $this->_itemButton[$i]['title'] . "' alt='" . $this->_itemButton[$i]['title'] . "' />" . $this->_itemButton[$i]['title'];
|
206: | $ret .= "</a>\n";
|
207: | $ret .= $delimeter;
|
208: | }
|
209: | $ret .= "</div>\n</div>\n";
|
210: | $ret .= '<br> <br><br>';
|
211: |
|
212: | return $ret;
|
213: | }
|
214: |
|
215: | |
216: | |
217: | |
218: | |
219: | |
220: | |
221: | |
222: |
|
223: | public function addItemButton($title, $link, $icon = 'add', $extra = '')
|
224: | {
|
225: | $ret = array();
|
226: | $ret['title'] = $title;
|
227: | $ret['link'] = $link;
|
228: | $ret['icon'] = $icon . '.png';
|
229: | $ret['extra'] = $extra;
|
230: | $this->_itemButton[] = $ret;
|
231: |
|
232: | return true;
|
233: | }
|
234: |
|
235: |
|
236: |
|
237: |
|
238: |
|
239: |
|
240: |
|
241: |
|
242: |
|
243: | |
244: | |
245: | |
246: | |
247: | |
248: |
|
249: | public function addConfigBoxLine($value = '', $type = 'default')
|
250: | {
|
251: | $line = '';
|
252: | $path = XOOPS_URL . '/Frameworks/moduleclasses/icons/16/';
|
253: | switch ($type) {
|
254: | default:
|
255: | case 'default':
|
256: | $line .= '<span>' . $value . '</span>';
|
257: | break;
|
258: |
|
259: | case 'folder':
|
260: | if (!is_dir($value)) {
|
261: | $line .= "<span style='color : red; font-weight : bold;'>";
|
262: | $line .= "<img src='" . $path . "0.png' >";
|
263: | $line .= sprintf(_AM_MODULEADMIN_CONFIG_FOLDERKO, $value);
|
264: | $line .= "</span>\n";
|
265: | } else {
|
266: | $line .= "<span style='color : green;'>";
|
267: | $line .= "<img src='" . $path . "1.png' >";
|
268: | $line .= sprintf(_AM_MODULEADMIN_CONFIG_FOLDEROK, $value);
|
269: | $line .= "</span>\n";
|
270: | }
|
271: | break;
|
272: |
|
273: | case 'chmod':
|
274: | if (is_dir($value[0])) {
|
275: | if (substr(decoct(fileperms($value[0])), 2) != $value[1]) {
|
276: | $line .= "<span style='color : red; font-weight : bold;'>";
|
277: | $line .= "<img src='" . $path . "0.png' >";
|
278: | $line .= sprintf(_AM_MODULEADMIN_CONFIG_CHMOD, $value[0], $value[1], substr(decoct(fileperms($value[0])), 2));
|
279: | $line .= "</span>\n";
|
280: | } else {
|
281: | $line .= "<span style='color : green;'>";
|
282: | $line .= "<img src='" . $path . "1.png' >";
|
283: | $line .= sprintf(_AM_MODULEADMIN_CONFIG_CHMOD, $value[0], $value[1], substr(decoct(fileperms($value[0])), 2));
|
284: | $line .= "</span>\n";
|
285: | }
|
286: | }
|
287: | break;
|
288: | }
|
289: | $this->_itemConfigBoxLine[] = $line;
|
290: |
|
291: | return true;
|
292: | }
|
293: |
|
294: |
|
295: |
|
296: |
|
297: |
|
298: | |
299: | |
300: |
|
301: | public function renderIndex()
|
302: | {
|
303: | $this->addAssets();
|
304: | $ret = "<table id='xo-modadmin-index'>\n<tr>\n";
|
305: | $ret .= "<td width=\"40%\">\n";
|
306: | $ret .= $this->renderMenuIndex();
|
307: | $ret .= "</td>\n";
|
308: | $ret .= "<td width=\"60%\">\n";
|
309: | $ret .= $this->renderInfoBox();
|
310: | $ret .= "</td>\n";
|
311: | $ret .= "</tr>\n";
|
312: |
|
313: | if ($this->_obj->getInfo('min_php') || $this->_obj->getInfo('min_xoops') || !empty($this->_itemConfigBoxLine)) {
|
314: | $ret .= "<tr>\n";
|
315: | $ret .= "<td colspan=\"2\">\n";
|
316: | $ret .= "<fieldset><legend class=\"label\">";
|
317: | $ret .= _AM_MODULEADMIN_CONFIG;
|
318: | $ret .= "</legend>\n";
|
319: |
|
320: |
|
321: | $path = XOOPS_URL . '/Frameworks/moduleclasses/icons/16/';
|
322: | if ($this->_obj->getInfo('min_php')) {
|
323: | if (version_compare(phpversion(), strtolower($this->_obj->getInfo('min_php')), '<')) {
|
324: | $ret .= "<span style='color : red; font-weight : bold;'><img src='" . $path . "0.png' >" . sprintf(_AM_MODULEADMIN_CONFIG_PHP, $this->_obj->getInfo('min_php'), phpversion()) . "</span>\n";
|
325: | } else {
|
326: | $ret .= "<span style='color : green;'><img src='" . $path . "1.png' >" . sprintf(_AM_MODULEADMIN_CONFIG_PHP, $this->_obj->getInfo('min_php'), phpversion()) . "</span>\n";
|
327: | }
|
328: | $ret .= '<br>';
|
329: | }
|
330: |
|
331: |
|
332: | $path = XOOPS_URL . '/Frameworks/moduleclasses/icons/16/';
|
333: | $dbarray = $this->_obj->getInfo('min_db');
|
334: | if ($dbarray!=false) {
|
335: |
|
336: | switch (XOOPS_DB_TYPE) {
|
337: |
|
338: | case 'mysql':
|
339: | case 'mysqli':
|
340: | global $xoopsDB;
|
341: | $dbCurrentVersion = $xoopsDB->getServerVersion();
|
342: | break;
|
343: |
|
344: |
|
345: |
|
346: |
|
347: | default:
|
348: | $dbCurrentVersion = '0';
|
349: | break;
|
350: | }
|
351: | $currentVerParts = explode('.', (string)$dbCurrentVersion);
|
352: | $iCurrentVerParts = array_map('intval', $currentVerParts);
|
353: | $dbRequiredVersion = $dbarray[XOOPS_DB_TYPE];
|
354: | $reqVerParts = explode('.', (string)$dbRequiredVersion);
|
355: | $iReqVerParts = array_map('intval', $reqVerParts);
|
356: | $icount = $j = count($iReqVerParts);
|
357: | $reqVer = $curVer = 0;
|
358: | for ($i = 0; $i < $icount; ++$i) {
|
359: | $j--;
|
360: | $reqVer += $iReqVerParts[$i] * pow(10, $j);
|
361: | if (isset($iCurrentVerParts[$i])) {
|
362: | $curVer += $iCurrentVerParts[$i] * pow(10, $j);
|
363: | } else {
|
364: | $curVer *= pow(10, $j);
|
365: | }
|
366: | }
|
367: | if ($reqVer > $curVer) {
|
368: | $ret .= "<span style='color : red; font-weight : bold;'><img src='" . $path . "0.png' >" . sprintf(XOOPS_DB_TYPE . ' ' . _AM_MODULEADMIN_CONFIG_DB, $dbRequiredVersion, $dbCurrentVersion) . "</span><br>\n";
|
369: | } else {
|
370: | $ret .= "<span style='color : green;'><img src='" . $path . "1.png' >" . sprintf(strtoupper(XOOPS_DB_TYPE) . ' ' . _AM_MODULEADMIN_CONFIG_DB, $dbRequiredVersion, $dbCurrentVersion) . "</span><br>\n";
|
371: | }
|
372: | }
|
373: |
|
374: |
|
375: | if ($this->_obj->getInfo('min_xoops')) {
|
376: | $currentXoopsVersion = strtolower(str_replace('XOOPS ', '', XOOPS_VERSION));
|
377: | if (version_compare($currentXoopsVersion, strtolower($this->_obj->getInfo('min_xoops')), '<')) {
|
378: | $ret .= "<span style='color : red; font-weight : bold;'><img src='" . $path . "0.png' >" . sprintf(_AM_MODULEADMIN_CONFIG_XOOPS, $this->_obj->getInfo('min_xoops'), substr(XOOPS_VERSION, 6, strlen(XOOPS_VERSION) - 6)) . "</span>\n";
|
379: | } else {
|
380: | $ret .= "<span style='color : green;'><img src='" . $path . "1.png' >" . sprintf(_AM_MODULEADMIN_CONFIG_XOOPS, $this->_obj->getInfo('min_xoops'), substr(XOOPS_VERSION, 6)) . "</span>\n";
|
381: | }
|
382: | $ret .= '<br>';
|
383: | }
|
384: |
|
385: |
|
386: | if ($this->_obj->getInfo('min_admin')) {
|
387: | if ($this->getVersion() < $this->_obj->getInfo('min_admin')) {
|
388: | $ret .= "<span style='color : red; font-weight : bold;'><img src='" . $path . "0.png' >" . sprintf(_AM_MODULEADMIN_CONFIG_ADMIN, $this->_obj->getInfo('min_admin'), $this->getVersion()) . "</span>\n";
|
389: | } else {
|
390: | $ret .= "<span style='color : green;'><img src='" . $path . "1.png' >" . sprintf(_AM_MODULEADMIN_CONFIG_ADMIN, $this->_obj->getInfo('min_admin'), $this->getVersion()) . "</span>\n";
|
391: | }
|
392: | $ret .= '<br>';
|
393: | }
|
394: | if (!empty($this->_itemConfigBoxLine)) {
|
395: | foreach (array_keys($this->_itemConfigBoxLine) as $i) {
|
396: | $ret .= $this->_itemConfigBoxLine[$i];
|
397: | $ret .= '<br>';
|
398: | }
|
399: | }
|
400: | $ret .= "</fieldset>\n";
|
401: | $ret .= "</td>\n";
|
402: | $ret .= "</tr>\n";
|
403: | }
|
404: | $ret .= "</table>\n";
|
405: |
|
406: | return $ret;
|
407: | }
|
408: |
|
409: |
|
410: |
|
411: |
|
412: |
|
413: | |
414: | |
415: | |
416: | |
417: |
|
418: | public function addInfoBox($title)
|
419: | {
|
420: | $ret = array();
|
421: | $ret['title'] = $title;
|
422: | $this->_itemInfoBox[] = $ret;
|
423: |
|
424: | return true;
|
425: | }
|
426: |
|
427: |
|
428: |
|
429: |
|
430: |
|
431: |
|
432: |
|
433: |
|
434: |
|
435: |
|
436: | |
437: | |
438: | |
439: | |
440: | |
441: | |
442: | |
443: | |
444: |
|
445: | public function addInfoBoxLine($label, $text, $value = '', $color = 'inherit', $type = 'default')
|
446: | {
|
447: | $ret = array();
|
448: | $ret['label'] = $label;
|
449: | $line = '';
|
450: | switch ($type) {
|
451: | default:
|
452: | case 'default':
|
453: | $line .= sprintf($text, "<span style='color : " . $color . "; font-weight : bold;'>" . $value . '</span>');
|
454: | break;
|
455: |
|
456: | case 'information':
|
457: | $line .= $text;
|
458: | break;
|
459: | }
|
460: | $ret['line'] = $line;
|
461: | $this->_itemInfoBoxLine[] = $ret;
|
462: |
|
463: | return true;
|
464: | }
|
465: |
|
466: | |
467: | |
468: |
|
469: | public function renderInfoBox()
|
470: | {
|
471: | $this->addAssets();
|
472: | $ret = '';
|
473: | foreach (array_keys($this->_itemInfoBox) as $i) {
|
474: | $ret .= "<fieldset><legend class=\"label\">";
|
475: | $ret .= $this->_itemInfoBox[$i]['title'];
|
476: | $ret .= "</legend>\n";
|
477: | foreach (array_keys($this->_itemInfoBoxLine) as $k) {
|
478: | if ($this->_itemInfoBoxLine[$k]['label'] == $this->_itemInfoBox[$i]['title']) {
|
479: | $ret .= $this->_itemInfoBoxLine[$k]['line'];
|
480: | $ret .= '<br>';
|
481: | }
|
482: | }
|
483: | $ret .= "</fieldset>\n";
|
484: | $ret .= "<br>\n";
|
485: | }
|
486: |
|
487: | return $ret;
|
488: | }
|
489: |
|
490: | |
491: | |
492: | |
493: | |
494: | |
495: | |
496: | |
497: |
|
498: | public function renderAbout($business = '', $logo_xoops = true)
|
499: | {
|
500: | $this->addAssets();
|
501: | $path = XOOPS_URL . '/Frameworks/moduleclasses/icons/32/';
|
502: | $date = preg_replace('/-\\\/', '/', $this->_obj->getInfo('release_date'));
|
503: | $date = explode('/', $date);
|
504: | $author = explode(',', $this->_obj->getInfo('author'));
|
505: | $nickname = explode(',', $this->_obj->getInfo('nickname'));
|
506: | $release_date = formatTimestamp(mktime(0, 0, 0, $date[1], $date[2], $date[0]), 's');
|
507: | $module_dir = $this->_obj->getVar('dirname');
|
508: | $module_info = "<div id=\"about\"><label class=\"label_after\">" . _AM_MODULEADMIN_ABOUT_DESCRIPTION . "</label>\n"
|
509: | . "<text>" . $this->_obj->getInfo('description') . "</text><br>\n"
|
510: | . "<label class=\"label_after\">" . _AM_MODULEADMIN_ABOUT_UPDATEDATE . "</label>\n"
|
511: | . "<text class=\"bold\">" . formatTimestamp($this->_obj->getVar('last_update'), 'm') . "</text><br>\n"
|
512: | . "<label class=\"label_after\">" . _AM_MODULEADMIN_ABOUT_MODULESTATUS . "</label>\n"
|
513: | . "<text>" . $this->_obj->getStatus() . "</text><br>\n"
|
514: | . "<label class=\"label_after\">" . _AM_MODULEADMIN_ABOUT_WEBSITE . "</label>\n"
|
515: | . "<text><a class=\"tooltip\" href=\"http://" . $this->_obj->getInfo('module_website_url') . "\" rel=\"external\" title=\""
|
516: | . $this->_obj->getInfo('module_website_name') . " - " . $this->_obj->getInfo('module_website_url') . "\">"
|
517: | . $this->_obj->getInfo('module_website_name') . "</a></text>\n"
|
518: | . "</div>\n";
|
519: | $authorArray = array();
|
520: | foreach ( $author as $k => $aName ) {
|
521: | $authorArray[$k] = ( isset( $nickname[$k] ) && ( '' != $nickname[$k] ) ) ? "{$aName} ({$nickname[$k]})" : "{$aName}";
|
522: | }
|
523: | $license_url = $this->_obj->getInfo('license_url');
|
524: | $license_url = preg_match('%^(https?:)?//%', $license_url) ? $license_url : 'http://' . $license_url;
|
525: | $website = $this->_obj->getInfo('website');
|
526: | $website = preg_match('%^(https?:)?//%', $website) ? $website : 'http://' . $website;
|
527: |
|
528: | $ret = "<table>\n<tr>\n"
|
529: | . "<td width=\"50%\">\n"
|
530: | . "<table>\n<tr>\n<td style=\"width: 100px;\">\n"
|
531: | . "<img src=\"" . XOOPS_URL . '/modules/' . $module_dir . '/' . $this->_obj->getInfo('image') . "\" alt=\"" . $module_dir . "\" style=\"float: left; margin-right: 10px;\">\n"
|
532: | . "</td><td>\n"
|
533: | . "<div style=\"margin-top: 1px; margin-bottom: 4px; font-size: 18px; line-height: 18px; color: #2F5376; font-weight: bold;\">\n"
|
534: | . $this->_obj->getInfo('name') . ' ' . $this->_obj->getVar('version') . ' ' . " ({$release_date})\n"
|
535: | . "<br>\n"
|
536: | . "</div>\n"
|
537: | . "<div style=\"line-height: 16px; font-weight: bold;\">\n"
|
538: | . _AM_MODULEADMIN_ABOUT_BY . implode(', ', $authorArray) . "\n"
|
539: | . "</div>\n"
|
540: | . "<div style=\"line-height: 16px;\">\n"
|
541: | . "<a href=\"$license_url\" target=\"_blank\" rel=\"external\">" . $this->_obj->getInfo('license') . "</a>\n"
|
542: | . "<br>\n"
|
543: | . "<a href=\"$website\" target=\"_blank\">" . $this->_obj->getInfo('website') . "</a>\n"
|
544: | . "<br>\n"
|
545: | . "<br>\n"
|
546: | . "</div>\n"
|
547: | . "</td></tr>\n";
|
548: | if ((1 !== preg_match('/[^a-zA-Z0-9]/', $business)) || (false !== checkEmail($business))) {
|
549: | $ret .= "<td colspan=\"2\">"
|
550: | . "<div id=\"about_donate\"><fieldset><legend class=\"label\">Donation</legend><br>\n"
|
551: | . "<div style=\"clear: both; height: 1em;\"></div>\n"
|
552: | . "<form action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\" target=\"_blank\" rel=\external\">\n"
|
553: | . "<input name=\"cmd\" type=\"hidden\" value=\"_donations\">\n"
|
554: | . "<input name=\"business\" type=\"hidden\" value=\"{$business}\">\n"
|
555: | . "<input name=\"currency_code\" type=\"hidden\" value=\"" . _AM_MODULEADMIN_ABOUT_AMOUNT_CURRENCY . "\">\n"
|
556: | . "<label class=\"label_after\" for=\"amount\">" . _AM_MODULEADMIN_ABOUT_AMOUNT . "</label><text><input class=\"donate_amount\" type=\"text\" name=\"amount\" value=\"" . _AM_MODULEADMIN_ABOUT_AMOUNT_SUGGESTED . "\" title=\"" . _AM_MODULEADMIN_ABOUT_AMOUNT_TTL . "\" pattern=\"" . _AM_MODULEADMIN_ABOUT_AMOUNT_PATTERN . "\"></text>\n"
|
557: | . "<br>\n"
|
558: | . "<text><input type=\"image\" name=\"submit\" class=\"donate_button\" src=\"" . XOOPS_URL . "/images/btn_donate_LG.png\" alt=\"" . _AM_MODULEADMIN_ABOUT_DONATE_IMG_ALT . "\"></text>\n"
|
559: | . "</form>\n"
|
560: | . "<br>\n"
|
561: | . "</fieldset>\n"
|
562: | . "</div>\n"
|
563: | . "</td>\n</tr>\n";
|
564: | }
|
565: | $ret .= "</table>\n";
|
566: | $this->addInfoBox( _AM_MODULEADMIN_ABOUT_MODULEINFO );
|
567: | $this->addInfoBoxLine( _AM_MODULEADMIN_ABOUT_MODULEINFO, $module_info, '', '', 'information' );
|
568: | $ret .= $this->renderInfoBox()
|
569: | . "</td>\n"
|
570: | . "<td width=\"50%\">\n"
|
571: | . "<fieldset><legend class=\"label\">" . _AM_MODULEADMIN_ABOUT_CHANGELOG . "</legend><br>\n"
|
572: | . "<div class=\"txtchangelog\">\n";
|
573: | $language = empty( $GLOBALS['xoopsConfig']['language'] ) ? 'english' : $GLOBALS['xoopsConfig']['language'];
|
574: | $file = XOOPS_ROOT_PATH . "/modules/{$module_dir}/language/{$language}/changelog.txt";
|
575: | if ( !is_file( $file ) && ( 'english' !== $language ) ) {
|
576: | $file = XOOPS_ROOT_PATH . "/modules/{$module_dir}/language/english/changelog.txt";
|
577: | }
|
578: | if ( is_readable( $file ) ) {
|
579: | $ret .= ( implode( '<br>', file( $file ) ) ) . "\n";
|
580: | } else {
|
581: | $file = XOOPS_ROOT_PATH . "/modules/{$module_dir}/docs/changelog.txt";
|
582: | if ( is_readable( $file ) ) {
|
583: | $ret .= implode( '<br>', file( $file ) ) . "\n";
|
584: | }
|
585: | }
|
586: | $ret .= "</div>\n"
|
587: | . "</fieldset>\n"
|
588: | . "</td>\n"
|
589: | . "</tr>\n"
|
590: | . "</table>\n";
|
591: | if ( true === $logo_xoops ) {
|
592: | $ret .= "<div class=\"center\">"
|
593: | . "<a href=\"https://xoops.org\" target=\"_blank\"><img src=\"{$path}xoopsmicrobutton.gif\" alt=\"XOOPS\" title=\"XOOPS\"></a>"
|
594: | . "</div>";
|
595: | }
|
596: | return $ret;
|
597: | }
|
598: |
|
599: | |
600: | |
601: | |
602: | |
603: |
|
604: | public function addNavigation($menu = '')
|
605: | {
|
606: | $this->addAssets();
|
607: | $ret = '';
|
608: | $navigation = '';
|
609: | $path = XOOPS_URL . '/modules/' . $this->_obj->getVar('dirname') . '/';
|
610: | $this->_obj->loadAdminMenu();
|
611: | foreach (array_keys((array) $this->_obj->adminmenu) as $i) {
|
612: | if ($this->_obj->adminmenu[$i]['link'] == 'admin/' . $menu) {
|
613: | $navigation .= $this->_obj->adminmenu[$i]['title'] . ' | ';
|
614: | $ret = "<div class=\"CPbigTitle\" style=\"background-image: url(" . $path . $this->_obj->adminmenu[$i]['icon'] . "); background-repeat: no-repeat; background-position: left; padding-left: 50px;\">
|
615: | <strong>" . $this->_obj->adminmenu[$i]['title'] . '</strong></div><br>';
|
616: | } else {
|
617: | $navigation .= "<a href = '../" . $this->_obj->adminmenu[$i]['link'] . "'>" . $this->_obj->adminmenu[$i]['title'] . '</a> | ';
|
618: | }
|
619: | }
|
620: | if (substr(XOOPS_VERSION, 0, 9) < 'XOOPS 2.5') {
|
621: | $navigation .= "<a href = '../../system/admin.php?fct=preferences&op=showmod&mod=" . $this->_obj->getVar('mid') . "'>" . _MI_SYSTEM_ADMENU6 . '</a>';
|
622: | $ret = $navigation . '<br><br>' . $ret;
|
623: | }
|
624: |
|
625: | return $ret;
|
626: | }
|
627: | }
|
628: | |