| 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: | |