| 1: | <?php
|
| 2: | |
| 3: | |
| 4: | |
| 5: | |
| 6: | |
| 7: | |
| 8: | |
| 9: | |
| 10: |
|
| 11: |
|
| 12: | |
| 13: | |
| 14: | |
| 15: | |
| 16: | |
| 17: | |
| 18: |
|
| 19: |
|
| 20: | include_once $GLOBALS['xoops']->path('class/xoopsformloader.php');
|
| 21: |
|
| 22: | |
| 23: | |
| 24: |
|
| 25: | function b_system_online_show()
|
| 26: | {
|
| 27: | global $xoopsUser, $xoopsModule;
|
| 28: |
|
| 29: | $online_handler = xoops_getHandler('online');
|
| 30: |
|
| 31: | if (mt_rand(1, 100) < 11) {
|
| 32: | $online_handler->gc(300);
|
| 33: | }
|
| 34: | if (is_object($xoopsUser)) {
|
| 35: | $uid = $xoopsUser->getVar('uid');
|
| 36: | $uname = $xoopsUser->getVar('uname');
|
| 37: | } else {
|
| 38: | $uid = 0;
|
| 39: | $uname = '';
|
| 40: | }
|
| 41: | $requestIp = \Xmf\IPAddress::fromRequest()->asReadable();
|
| 42: | $requestIp = (false === $requestIp) ? '0.0.0.0' : $requestIp;
|
| 43: | if (is_object($xoopsModule)) {
|
| 44: | $online_handler->write($uid, $uname, time(), $xoopsModule->getVar('mid'), $requestIp);
|
| 45: | } else {
|
| 46: | $online_handler->write($uid, $uname, time(), 0, $requestIp);
|
| 47: | }
|
| 48: | $onlines = $online_handler->getAll();
|
| 49: | if (!empty($onlines)) {
|
| 50: | $total = count($onlines);
|
| 51: | $block = array();
|
| 52: | $guests = 0;
|
| 53: | $members = '';
|
| 54: | for ($i = 0; $i < $total; ++$i) {
|
| 55: | if ($onlines[$i]['online_uid'] > 0) {
|
| 56: | $members .= ' <a href="' . XOOPS_URL . '/userinfo.php?uid=' . $onlines[$i]['online_uid'] . '" title="' . $onlines[$i]['online_uname'] . '">' . $onlines[$i]['online_uname'] . '</a>,';
|
| 57: | } else {
|
| 58: | ++$guests;
|
| 59: | }
|
| 60: | }
|
| 61: | $block['online_total'] = sprintf(_ONLINEPHRASE, $total);
|
| 62: | if (is_object($xoopsModule)) {
|
| 63: | $mytotal = $online_handler->getCount(new Criteria('online_module', $xoopsModule->getVar('mid')));
|
| 64: | $block['online_total'] .= ' (' . sprintf(_ONLINEPHRASEX, $mytotal, $xoopsModule->getVar('name')) . ')';
|
| 65: | }
|
| 66: | $block['lang_members'] = _MEMBERS;
|
| 67: | $block['lang_guests'] = _GUESTS;
|
| 68: | $block['online_names'] = $members;
|
| 69: | $block['online_members'] = $total - $guests;
|
| 70: | $block['online_guests'] = $guests;
|
| 71: | $block['lang_more'] = _MORE;
|
| 72: |
|
| 73: | return $block;
|
| 74: | } else {
|
| 75: | return false;
|
| 76: | }
|
| 77: | }
|
| 78: |
|
| 79: | |
| 80: | |
| 81: |
|
| 82: | function b_system_login_show()
|
| 83: | {
|
| 84: | global $xoopsUser, $xoopsConfig;
|
| 85: | if (!$xoopsUser) {
|
| 86: | $block = array();
|
| 87: | $block['lang_username'] = _USERNAME;
|
| 88: | $block['unamevalue'] = '';
|
| 89: | $block['lang_password'] = _PASSWORD;
|
| 90: | $block['lang_login'] = _LOGIN;
|
| 91: | $block['lang_lostpass'] = _MB_SYSTEM_LPASS;
|
| 92: | $block['lang_registernow'] = _MB_SYSTEM_RNOW;
|
| 93: |
|
| 94: | if ($xoopsConfig['use_ssl'] == 1 && $xoopsConfig['sslloginlink'] != '') {
|
| 95: | $block['sslloginlink'] = "<a href=\"javascript:openWithSelfMain('" . $xoopsConfig['sslloginlink'] . "', 'ssllogin', 300, 200);\">" . _MB_SYSTEM_SECURE . '</a>';
|
| 96: | } elseif ($GLOBALS['xoopsConfig']['usercookie']) {
|
| 97: | $block['lang_rememberme'] = _MB_SYSTEM_REMEMBERME;
|
| 98: | }
|
| 99: |
|
| 100: | return $block;
|
| 101: | }
|
| 102: |
|
| 103: | return false;
|
| 104: | }
|
| 105: |
|
| 106: | |
| 107: | |
| 108: |
|
| 109: | function b_system_main_show()
|
| 110: | {
|
| 111: | global $xoopsUser, $xoopsModule;
|
| 112: | $block = array();
|
| 113: | $block['lang_home'] = _MB_SYSTEM_HOME;
|
| 114: | $block['lang_close'] = _CLOSE;
|
| 115: | $module_handler = xoops_getHandler('module');
|
| 116: | $criteria = new CriteriaCompo(new Criteria('hasmain', 1));
|
| 117: | $criteria->add(new Criteria('isactive', 1));
|
| 118: | $criteria->add(new Criteria('weight', 0, '>'));
|
| 119: | $modules = $module_handler->getObjects($criteria, true);
|
| 120: |
|
| 121: | $moduleperm_handler = xoops_getHandler('groupperm');
|
| 122: | $groups = is_object($xoopsUser) ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS;
|
| 123: | $read_allowed = $moduleperm_handler->getItemIds('module_read', $groups);
|
| 124: | $block['modules'] = array();
|
| 125: | foreach (array_keys($modules) as $i) {
|
| 126: | if (in_array($i, $read_allowed)) {
|
| 127: | $block['modules'][$i]['name'] = $modules[$i]->getVar('name');
|
| 128: | $block['modules'][$i]['directory'] = $modules[$i]->getVar('dirname');
|
| 129: | $sublinks = $modules[$i]->subLink();
|
| 130: | if ((!empty($xoopsModule)) && ($i == $xoopsModule->getVar('mid'))) {
|
| 131: | $block['modules'][$i]['highlight'] = true;
|
| 132: | $block['nothome'] = true;
|
| 133: | }
|
| 134: | if ((!empty($xoopsModule)) && ($i == $xoopsModule->getVar('mid'))) {
|
| 135: | $block['modules'][$i]['highlight'] = true;
|
| 136: | $block['nothome'] = true;
|
| 137: | }
|
| 138: | if ((count($sublinks) > 0) && (!empty($xoopsModule)) && ($i == $xoopsModule->getVar('mid'))) {
|
| 139: | foreach ($sublinks as $sublink) {
|
| 140: | $block['modules'][$i]['sublinks'][] = array(
|
| 141: | 'name' => $sublink['name'],
|
| 142: | 'url' => XOOPS_URL . '/modules/' . $modules[$i]->getVar('dirname') . '/' . $sublink['url']);
|
| 143: | }
|
| 144: | } else {
|
| 145: | $block['modules'][$i]['sublinks'] = array();
|
| 146: | }
|
| 147: | }
|
| 148: | }
|
| 149: |
|
| 150: | return $block;
|
| 151: | }
|
| 152: |
|
| 153: | |
| 154: | |
| 155: |
|
| 156: | function b_system_search_show()
|
| 157: | {
|
| 158: | $block = array();
|
| 159: | $block['lang_search'] = _MB_SYSTEM_SEARCH;
|
| 160: | $block['lang_advsearch'] = _MB_SYSTEM_ADVS;
|
| 161: |
|
| 162: | return $block;
|
| 163: | }
|
| 164: |
|
| 165: | |
| 166: | |
| 167: |
|
| 168: | function b_system_user_show()
|
| 169: | {
|
| 170: | global $xoopsUser;
|
| 171: | if (!is_object($xoopsUser)) {
|
| 172: | return false;
|
| 173: | }
|
| 174: | $block = array();
|
| 175: | $block['lang_youraccount'] = _MB_SYSTEM_VACNT;
|
| 176: | $block['lang_editaccount'] = _MB_SYSTEM_EACNT;
|
| 177: | $block['lang_notifications'] = _MB_SYSTEM_NOTIF;
|
| 178: | $block['uid'] = $xoopsUser->getVar('uid');
|
| 179: | $block['lang_logout'] = _MB_SYSTEM_LOUT;
|
| 180: | $criteria = new CriteriaCompo(new Criteria('read_msg', 0));
|
| 181: | $criteria->add(new Criteria('to_userid', $xoopsUser->getVar('uid')));
|
| 182: |
|
| 183: | $pm_handler = xoops_getHandler('privmessage');
|
| 184: |
|
| 185: | $xoopsPreload = XoopsPreload::getInstance();
|
| 186: | $xoopsPreload->triggerEvent('system.blocks.system_blocks.usershow', array(&$pm_handler));
|
| 187: |
|
| 188: | $block['user_avatar'] = $xoopsUser->getVar('user_avatar');
|
| 189: | $block['uname'] = $xoopsUser->getVar('uname');
|
| 190: | $block['new_messages'] = $pm_handler->getCount($criteria);
|
| 191: | $block['lang_inbox'] = _MB_SYSTEM_INBOX;
|
| 192: | $block['lang_adminmenu'] = _MB_SYSTEM_ADMENU;
|
| 193: |
|
| 194: | return $block;
|
| 195: | }
|
| 196: |
|
| 197: |
|
| 198: | |
| 199: | |
| 200: |
|
| 201: | function b_system_waiting_show()
|
| 202: | {
|
| 203: | global $xoopsUser;
|
| 204: | $xoopsDB = XoopsDatabaseFactory::getDatabaseConnection();
|
| 205: |
|
| 206: | $module_handler = xoops_getHandler('module');
|
| 207: | $block = array();
|
| 208: |
|
| 209: |
|
| 210: | if (xoops_isActiveModule('news') && $module_handler->getCount(new Criteria('dirname', 'news'))) {
|
| 211: | $sql = 'SELECT COUNT(*) FROM ' . $xoopsDB->prefix('stories') . ' WHERE published=0';
|
| 212: | $result = $xoopsDB->query($sql);
|
| 213: | if ($xoopsDB->isResultSet($result)) {
|
| 214: | $block['modules'][0]['adminlink'] = XOOPS_URL . '/modules/news/admin/index.php?op=newarticle';
|
| 215: | list($block['modules'][0]['pendingnum']) = $xoopsDB->fetchRow($result);
|
| 216: | $block['modules'][0]['lang_linkname'] = _MB_SYSTEM_SUBMS;
|
| 217: | }
|
| 218: | }
|
| 219: |
|
| 220: |
|
| 221: | if (xoops_isActiveModule('mylinks') && $module_handler->getCount(new Criteria('dirname', 'mylinks'))) {
|
| 222: | $sql = 'SELECT COUNT(*) FROM ' . $xoopsDB->prefix('mylinks_links') . ' WHERE status=0';
|
| 223: | $result = $xoopsDB->query($sql);
|
| 224: | if ($xoopsDB->isResultSet($result)) {
|
| 225: | $block['modules'][1]['adminlink'] = XOOPS_URL . '/modules/mylinks/admin/index.php?op=listNewLinks';
|
| 226: | list($block['modules'][1]['pendingnum']) = $xoopsDB->fetchRow($result);
|
| 227: | $block['modules'][1]['lang_linkname'] = _MB_SYSTEM_WLNKS;
|
| 228: | }
|
| 229: |
|
| 230: | $sql = 'SELECT COUNT(*) FROM ' . $xoopsDB->prefix('mylinks_broken');
|
| 231: | $result = $xoopsDB->query($sql);
|
| 232: | if ($xoopsDB->isResultSet($result)) {
|
| 233: | $block['modules'][2]['adminlink'] = XOOPS_URL . '/modules/mylinks/admin/index.php?op=listBrokenLinks';
|
| 234: | list($block['modules'][2]['pendingnum']) = $xoopsDB->fetchRow($result);
|
| 235: | $block['modules'][2]['lang_linkname'] = _MB_SYSTEM_BLNK;
|
| 236: | }
|
| 237: |
|
| 238: | $sql = 'SELECT COUNT(*) FROM ' . $xoopsDB->prefix('mylinks_mod');
|
| 239: | $result = $xoopsDB->query($sql);
|
| 240: | if ($xoopsDB->isResultSet($result)) {
|
| 241: | $block['modules'][3]['adminlink'] = XOOPS_URL . '/modules/mylinks/admin/index.php?op=listModReq';
|
| 242: | list($block['modules'][3]['pendingnum']) = $xoopsDB->fetchRow($result);
|
| 243: | $block['modules'][3]['lang_linkname'] = _MB_SYSTEM_MLNKS;
|
| 244: | }
|
| 245: | }
|
| 246: |
|
| 247: |
|
| 248: | if (xoops_isActiveModule('mydownloads') && $module_handler->getCount(new Criteria('dirname', 'mydownloads'))) {
|
| 249: | $sql = 'SELECT COUNT(*) FROM ' . $xoopsDB->prefix('mydownloads_downloads') . ' WHERE status=0';
|
| 250: | $result = $xoopsDB->query($sql);
|
| 251: | if ($xoopsDB->isResultSet($result)) {
|
| 252: | $block['modules'][4]['adminlink'] = XOOPS_URL . '/modules/mydownloads/admin/index.php?op=listNewDownloads';
|
| 253: | list($block['modules'][4]['pendingnum']) = $xoopsDB->fetchRow($result);
|
| 254: | $block['modules'][4]['lang_linkname'] = _MB_SYSTEM_WDLS;
|
| 255: | }
|
| 256: |
|
| 257: | $sql = 'SELECT COUNT(*) FROM ' . $xoopsDB->prefix('mydownloads_broken') . '';
|
| 258: | $result = $xoopsDB->query($sql);
|
| 259: | if ($xoopsDB->isResultSet($result)) {
|
| 260: | $block['modules'][5]['adminlink'] = XOOPS_URL . '/modules/mydownloads/admin/index.php?op=listBrokenDownloads';
|
| 261: | list($block['modules'][5]['pendingnum']) = $xoopsDB->fetchRow($result);
|
| 262: | $block['modules'][5]['lang_linkname'] = _MB_SYSTEM_BFLS;
|
| 263: | }
|
| 264: |
|
| 265: | $sql = 'SELECT COUNT(*) FROM ' . $xoopsDB->prefix('mydownloads_mod') . '';
|
| 266: | $result = $xoopsDB->query($sql);
|
| 267: | if ($xoopsDB->isResultSet($result)) {
|
| 268: | $block['modules'][6]['adminlink'] = XOOPS_URL . '/modules/mydownloads/admin/index.php?op=listModReq';
|
| 269: | list($block['modules'][6]['pendingnum']) = $xoopsDB->fetchRow($result);
|
| 270: | $block['modules'][6]['lang_linkname'] = _MB_SYSTEM_MFLS;
|
| 271: | }
|
| 272: | }
|
| 273: |
|
| 274: |
|
| 275: | $sql = 'SELECT COUNT(*) FROM ' . $xoopsDB->prefix('xoopscomments') . ' WHERE com_status=1';
|
| 276: | $result = $xoopsDB->query($sql);
|
| 277: | if ($xoopsDB->isResultSet($result)) {
|
| 278: | $block['modules'][7]['adminlink'] = XOOPS_URL . '/modules/system/admin.php?module=0&status=1&fct=comments';
|
| 279: | list($block['modules'][7]['pendingnum']) = $xoopsDB->fetchRow($result);
|
| 280: | $block['modules'][7]['lang_linkname'] = _MB_SYSTEM_COMPEND;
|
| 281: | }
|
| 282: |
|
| 283: |
|
| 284: | if (xoops_isActiveModule('TDMdownloads') && $module_handler->getCount(new Criteria('dirname', 'TDMDownloads'))) {
|
| 285: | $sql = 'SELECT COUNT(*) FROM ' . $xoopsDB->prefix('tdmdownloads_downloads') . ' WHERE status=0';
|
| 286: | $result = $xoopsDB->query($sql);
|
| 287: | if ($xoopsDB->isResultSet($result)) {
|
| 288: | $block['modules'][8]['adminlink'] = XOOPS_URL . '/modules/TDMDownloads/admin/downloads.php?op=list&statut_display=0';
|
| 289: | list($block['modules'][8]['pendingnum']) = $xoopsDB->fetchRow($result);
|
| 290: | $block['modules'][8]['lang_linkname'] = _MB_SYSTEM_TDMDOWNLOADS;
|
| 291: | }
|
| 292: | }
|
| 293: |
|
| 294: |
|
| 295: | if (xoops_isActiveModule('extgallery') && $module_handler->getCount(new Criteria('dirname', 'extgallery'))) {
|
| 296: | $sql = 'SELECT COUNT(*) FROM ' . $xoopsDB->prefix('extgallery_publicphoto') . ' WHERE photo_approved=0';
|
| 297: | $result = $xoopsDB->query($sql);
|
| 298: | if ($xoopsDB->isResultSet($result)) {
|
| 299: | $block['modules'][9]['adminlink'] = XOOPS_URL . '/modules/extgallery/admin/photo.php#pending-photo';
|
| 300: | list($block['modules'][9]['pendingnum']) = $xoopsDB->fetchRow($result);
|
| 301: | $block['modules'][9]['lang_linkname'] = _MB_SYSTEM_EXTGALLERY;
|
| 302: | }
|
| 303: | }
|
| 304: |
|
| 305: |
|
| 306: | if (xoops_isActiveModule('smartsection') && $module_handler->getCount(new Criteria('dirname', 'smartsection'))) {
|
| 307: | $sql = 'SELECT COUNT(*) FROM ' . $xoopsDB->prefix('smartsection_items') . ' WHERE status=1';
|
| 308: | $result = $xoopsDB->query($sql);
|
| 309: | if ($xoopsDB->isResultSet($result)) {
|
| 310: | $block['modules'][10]['adminlink'] = XOOPS_URL . '/modules/smartsection/admin/item.php';
|
| 311: | list($block['modules'][10]['pendingnum']) = $xoopsDB->fetchRow($result);
|
| 312: | $block['modules'][10]['lang_linkname'] = _MB_SYSTEM_SMARTSECTION;
|
| 313: | }
|
| 314: | }
|
| 315: | $GLOBALS['xoopsLogger']->addDeprecated("Block 'Waiting Contents' is deprecated since XOOPS 2.5.11, please use waiting module");
|
| 316: | return $block;
|
| 317: | }
|
| 318: |
|
| 319: | |
| 320: | |
| 321: | |
| 322: | |
| 323: |
|
| 324: | function b_system_info_show($options)
|
| 325: | {
|
| 326: | global $xoopsConfig, $xoopsUser;
|
| 327: | $xoopsDB = XoopsDatabaseFactory::getDatabaseConnection();
|
| 328: | $myts = \MyTextSanitizer::getInstance();
|
| 329: | $block = array();
|
| 330: | if (!empty($options[3])) {
|
| 331: | $block['showgroups'] = true;
|
| 332: | $sql = 'SELECT u.uid, u.uname, u.email, u.user_viewemail, u.user_avatar, g.name AS groupname FROM ' . $xoopsDB->prefix('groups_users_link') . ' l LEFT JOIN ' . $xoopsDB->prefix('users') . ' u ON l.uid=u.uid LEFT JOIN ' . $xoopsDB->prefix('groups') . " g ON l.groupid=g.groupid WHERE g.group_type='Admin' ORDER BY l.groupid, u.uid";
|
| 333: | $result = $xoopsDB->query($sql);
|
| 334: | if ($xoopsDB->isResultSet($result) && $xoopsDB->getRowsNum($result) > 0) {
|
| 335: | $prev_caption = '';
|
| 336: | $i = 0;
|
| 337: | while (false !== ($userinfo = $xoopsDB->fetchArray($result))) {
|
| 338: | if ($prev_caption != $userinfo['groupname']) {
|
| 339: | $prev_caption = $userinfo['groupname'];
|
| 340: | $block['groups'][$i]['name'] = $myts->htmlSpecialChars($userinfo['groupname']);
|
| 341: | }
|
| 342: | if (isset($xoopsUser) && is_object($xoopsUser)) {
|
| 343: | $block['groups'][$i]['users'][] = array(
|
| 344: | 'id' => $userinfo['uid'],
|
| 345: | 'name' => $myts->htmlSpecialChars($userinfo['uname']),
|
| 346: | 'msglink' => "<a href=\"javascript:openWithSelfMain('" . XOOPS_URL . '/pmlite.php?send2=1&to_userid=' . $userinfo['uid'] . "','pmlite',565,500);\"><img src=\"" . XOOPS_URL . "/images/icons/pm_small.gif\" border=\"0\" width=\"27\" height=\"17\" alt=\"\" /></a>",
|
| 347: | 'avatar' => XOOPS_UPLOAD_URL . '/' . $userinfo['user_avatar']);
|
| 348: | } else {
|
| 349: | if ($userinfo['user_viewemail']) {
|
| 350: | $block['groups'][$i]['users'][] = array(
|
| 351: | 'id' => $userinfo['uid'],
|
| 352: | 'name' => $myts->htmlSpecialChars($userinfo['uname']),
|
| 353: | 'msglink' => '<a href="mailto:' . $userinfo['email'] . '"><img src="' . XOOPS_URL . '/images/icons/em_small.gif" border="0" width="16" height="14" alt="" /></a>',
|
| 354: | 'avatar' => XOOPS_UPLOAD_URL . '/' . $userinfo['user_avatar']);
|
| 355: | } else {
|
| 356: | $block['groups'][$i]['users'][] = array(
|
| 357: | 'id' => $userinfo['uid'],
|
| 358: | 'name' => $myts->htmlSpecialChars($userinfo['uname']),
|
| 359: | 'msglink' => ' ',
|
| 360: | 'avatar' => XOOPS_UPLOAD_URL . '/' . $userinfo['user_avatar']);
|
| 361: | }
|
| 362: | }
|
| 363: | ++$i;
|
| 364: | }
|
| 365: | }
|
| 366: | } else {
|
| 367: | $block['showgroups'] = false;
|
| 368: | }
|
| 369: | $block['logourl'] = XOOPS_URL . '/images/' . $options[2];
|
| 370: | $block['recommendlink'] = "<a href=\"javascript:openWithSelfMain('" . XOOPS_URL . '/misc.php?action=showpopups&type=friend&op=sendform&t=' . time() . "','friend'," . $options[0] . ',' . $options[1] . ")\">" . _MB_SYSTEM_RECO . '</a>';
|
| 371: |
|
| 372: | return $block;
|
| 373: | }
|
| 374: |
|
| 375: | |
| 376: | |
| 377: | |
| 378: | |
| 379: |
|
| 380: | function b_system_newmembers_show($options)
|
| 381: | {
|
| 382: | $block = array();
|
| 383: | $criteria = new CriteriaCompo(new Criteria('level', 0, '>'));
|
| 384: | $limit = (!empty($options[0])) ? $options[0] : 10;
|
| 385: | $criteria->setOrder('DESC');
|
| 386: | $criteria->setSort('user_regdate');
|
| 387: | $criteria->setLimit($limit);
|
| 388: |
|
| 389: | $member_handler = xoops_getHandler('member');
|
| 390: | $newmembers = $member_handler->getUsers($criteria);
|
| 391: | $count = count($newmembers);
|
| 392: | for ($i = 0; $i < $count; ++$i) {
|
| 393: | if ($options[1] == 1) {
|
| 394: | $block['users'][$i]['avatar'] = $newmembers[$i]->getVar('user_avatar') !== 'blank.gif' ? XOOPS_UPLOAD_URL . '/' . $newmembers[$i]->getVar('user_avatar') : '';
|
| 395: | } else {
|
| 396: | $block['users'][$i]['avatar'] = '';
|
| 397: | }
|
| 398: | $block['users'][$i]['id'] = $newmembers[$i]->getVar('uid');
|
| 399: | $block['users'][$i]['name'] = $newmembers[$i]->getVar('uname');
|
| 400: | $block['users'][$i]['joindate'] = formatTimestamp($newmembers[$i]->getVar('user_regdate'), 's');
|
| 401: | }
|
| 402: |
|
| 403: | return $block;
|
| 404: | }
|
| 405: |
|
| 406: | |
| 407: | |
| 408: | |
| 409: | |
| 410: |
|
| 411: | function b_system_topposters_show($options)
|
| 412: | {
|
| 413: | $block = array();
|
| 414: | $criteria = new CriteriaCompo(new Criteria('level', 0, '>'));
|
| 415: | $criteria->add(new Criteria('posts', 0, '>'));
|
| 416: | $limit = (!empty($options[0])) ? $options[0] : 10;
|
| 417: | $size = count($options);
|
| 418: | for ($i = 2; $i < $size; ++$i) {
|
| 419: | $criteria->add(new Criteria('rank', $options[$i], '<>'));
|
| 420: | }
|
| 421: | $criteria->setOrder('DESC');
|
| 422: | $criteria->setSort('posts');
|
| 423: | $criteria->setLimit($limit);
|
| 424: |
|
| 425: | $member_handler = xoops_getHandler('member');
|
| 426: | $topposters = $member_handler->getUsers($criteria);
|
| 427: | $count = count($topposters);
|
| 428: | for ($i = 0; $i < $count; ++$i) {
|
| 429: | $block['users'][$i]['rank'] = $i + 1;
|
| 430: | if ($options[1] == 1) {
|
| 431: | $block['users'][$i]['avatar'] = $topposters[$i]->getVar('user_avatar') !== 'blank.gif' ? XOOPS_UPLOAD_URL . '/' . $topposters[$i]->getVar('user_avatar') : '';
|
| 432: | } else {
|
| 433: | $block['users'][$i]['avatar'] = '';
|
| 434: | }
|
| 435: | $block['users'][$i]['id'] = $topposters[$i]->getVar('uid');
|
| 436: | $block['users'][$i]['name'] = $topposters[$i]->getVar('uname');
|
| 437: | $block['users'][$i]['posts'] = $topposters[$i]->getVar('posts');
|
| 438: | }
|
| 439: |
|
| 440: | return $block;
|
| 441: | }
|
| 442: |
|
| 443: | |
| 444: | |
| 445: | |
| 446: | |
| 447: |
|
| 448: | function b_system_comments_show($options)
|
| 449: | {
|
| 450: | $block = array();
|
| 451: | include_once XOOPS_ROOT_PATH . '/include/comment_constants.php';
|
| 452: | $comment_handler = xoops_getHandler('comment');
|
| 453: | $criteria = new CriteriaCompo(new Criteria('com_status', XOOPS_COMMENT_ACTIVE));
|
| 454: | $criteria->setLimit((int)$options[0]);
|
| 455: | $criteria->setSort('com_created');
|
| 456: | $criteria->setOrder('DESC');
|
| 457: |
|
| 458: |
|
| 459: | global $xoopsUser;
|
| 460: | $moduleperm_handler = xoops_getHandler('groupperm');
|
| 461: | $gperm_groupid = is_object($xoopsUser) ? $xoopsUser->getGroups() : array(XOOPS_GROUP_ANONYMOUS);
|
| 462: | $criteria1 = new CriteriaCompo(new Criteria('gperm_name', 'module_read', '='));
|
| 463: | $criteria1->add(new Criteria('gperm_groupid', '(' . implode(',', $gperm_groupid) . ')', 'IN'));
|
| 464: | $perms = $moduleperm_handler->getObjects($criteria1, true);
|
| 465: | $modIds = array();
|
| 466: | foreach ($perms as $item) {
|
| 467: | $modIds[] = $item->getVar('gperm_itemid');
|
| 468: | }
|
| 469: | if (count($modIds) > 0) {
|
| 470: | $modIds = array_unique($modIds);
|
| 471: | $criteria->add(new Criteria('com_modid', '(' . implode(',', $modIds) . ')', 'IN'));
|
| 472: | }
|
| 473: |
|
| 474: |
|
| 475: | $comments = $comment_handler->getObjects($criteria, true);
|
| 476: |
|
| 477: | $member_handler = xoops_getHandler('member');
|
| 478: |
|
| 479: | $module_handler = xoops_getHandler('module');
|
| 480: | $modules = $module_handler->getObjects(new Criteria('hascomments', 1), true);
|
| 481: | $comment_config = array();
|
| 482: | foreach (array_keys($comments) as $i) {
|
| 483: | $mid = $comments[$i]->getVar('com_modid');
|
| 484: | $com['module'] = '<a href="' . XOOPS_URL . '/modules/' . $modules[$mid]->getVar('dirname') . '/">' . $modules[$mid]->getVar('name') . '</a>';
|
| 485: | if (!isset($comment_config[$mid])) {
|
| 486: | $comment_config[$mid] = $modules[$mid]->getInfo('comments');
|
| 487: | }
|
| 488: | $com['id'] = $i;
|
| 489: | $com['title'] = '<a href="' . XOOPS_URL . '/modules/' . $modules[$mid]->getVar('dirname') . '/' . $comment_config[$mid]['pageName'] . '?' . $comment_config[$mid]['itemName'] . '=' . $comments[$i]->getVar('com_itemid') . '&com_id=' . $i . '&com_rootid=' . $comments[$i]->getVar('com_rootid') . '&' . htmlspecialchars($comments[$i]->getVar('com_exparams'), ENT_QUOTES) . '#comment' . $i . '">' . $comments[$i]->getVar('com_title') . '</a>';
|
| 490: | $com['icon'] = htmlspecialchars($comments[$i]->getVar('com_icon'), ENT_QUOTES);
|
| 491: | $com['icon'] = ($com['icon'] != '') ? $com['icon'] : 'icon1.gif';
|
| 492: | $com['time'] = formatTimestamp($comments[$i]->getVar('com_created'), 'm');
|
| 493: | if ($comments[$i]->getVar('com_uid') > 0) {
|
| 494: | $poster = $member_handler->getUser($comments[$i]->getVar('com_uid'));
|
| 495: | if (is_object($poster)) {
|
| 496: | $com['poster'] = '<a href="' . XOOPS_URL . '/userinfo.php?uid=' . $comments[$i]->getVar('com_uid') . '">' . $poster->getVar('uname') . '</a>';
|
| 497: | } else {
|
| 498: | $com['poster'] = $GLOBALS['xoopsConfig']['anonymous'];
|
| 499: | }
|
| 500: | } else {
|
| 501: | $com['poster'] = $GLOBALS['xoopsConfig']['anonymous'];
|
| 502: | }
|
| 503: | $block['comments'][] =& $com;
|
| 504: | unset($com);
|
| 505: | }
|
| 506: |
|
| 507: | return $block;
|
| 508: | }
|
| 509: |
|
| 510: |
|
| 511: | |
| 512: | |
| 513: |
|
| 514: | function b_system_notification_show()
|
| 515: | {
|
| 516: | global $xoopsConfig, $xoopsUser, $xoopsModule;
|
| 517: | include_once XOOPS_ROOT_PATH . '/include/notification_functions.php';
|
| 518: | include_once XOOPS_ROOT_PATH . '/language/' . $xoopsConfig['language'] . '/notification.php';
|
| 519: |
|
| 520: | if (empty($xoopsUser) || !notificationEnabled('block')) {
|
| 521: | return false;
|
| 522: | }
|
| 523: | $notification_handler = xoops_getHandler('notification');
|
| 524: |
|
| 525: |
|
| 526: | $block = array();
|
| 527: | $categories =& notificationSubscribableCategoryInfo();
|
| 528: | if (empty($categories)) {
|
| 529: | return false;
|
| 530: | }
|
| 531: | foreach ($categories as $category) {
|
| 532: | $section['name'] = $category['name'];
|
| 533: | $section['title'] = $category['title'];
|
| 534: | $section['description'] = $category['description'];
|
| 535: | $section['itemid'] = $category['item_id'];
|
| 536: | $section['events'] = array();
|
| 537: | $subscribed_events = $notification_handler->getSubscribedEvents($category['name'], $category['item_id'], $xoopsModule->getVar('mid'), $xoopsUser->getVar('uid'));
|
| 538: | foreach (notificationEvents($category['name'], true) as $event) {
|
| 539: | if (!empty($event['admin_only']) && !$xoopsUser->isAdmin($xoopsModule->getVar('mid'))) {
|
| 540: | continue;
|
| 541: | }
|
| 542: | $subscribed = in_array($event['name'], $subscribed_events) ? 1 : 0;
|
| 543: | $section['events'][$event['name']] = array(
|
| 544: | 'name' => $event['name'],
|
| 545: | 'title' => $event['title'],
|
| 546: | 'caption' => $event['caption'],
|
| 547: | 'description' => $event['description'],
|
| 548: | 'subscribed' => $subscribed);
|
| 549: | }
|
| 550: | $block['categories'][$category['name']] = $section;
|
| 551: | }
|
| 552: |
|
| 553: | $block['target_page'] = 'notification_update.php';
|
| 554: |
|
| 555: | $script_url = explode('/', $_SERVER['PHP_SELF']);
|
| 556: | $script_name = $script_url[count($script_url) - 1];
|
| 557: | $block['redirect_script'] = $script_name;
|
| 558: | $block['submit_button'] = _NOT_UPDATENOW;
|
| 559: | $block['notification_token'] = $GLOBALS['xoopsSecurity']->createToken();
|
| 560: |
|
| 561: | return $block;
|
| 562: | }
|
| 563: |
|
| 564: | |
| 565: | |
| 566: | |
| 567: | |
| 568: |
|
| 569: | function b_system_comments_edit($options)
|
| 570: | {
|
| 571: | $inputtag = "<input type='text' name='options[]' value='" . (int)$options[0] . "' />";
|
| 572: | $form = sprintf(_MB_SYSTEM_DISPLAYC, $inputtag);
|
| 573: |
|
| 574: | return $form;
|
| 575: | }
|
| 576: |
|
| 577: | |
| 578: | |
| 579: | |
| 580: | |
| 581: |
|
| 582: | function b_system_topposters_edit($options)
|
| 583: | {
|
| 584: | include_once XOOPS_ROOT_PATH . '/class/xoopslists.php';
|
| 585: | $inputtag = "<input type='text' name='options[]' value='" . (int)$options[0] . "' />";
|
| 586: | $form = sprintf(_MB_SYSTEM_DISPLAY, $inputtag);
|
| 587: | $form .= '<br>' . _MB_SYSTEM_DISPLAYA . " <input type='radio' id='options[]' name='options[]' value='1'";
|
| 588: | if ($options[1] == 1) {
|
| 589: | $form .= " checked";
|
| 590: | }
|
| 591: | $form .= ' /> ' . _YES . "<input type='radio' id='options[]' name='options[]' value='0'";
|
| 592: | if ($options[1] == 0) {
|
| 593: | $form .= " checked";
|
| 594: | }
|
| 595: | $form .= ' /> ' . _NO . '';
|
| 596: | $form .= '<br>' . _MB_SYSTEM_NODISPGR . "<br><select id='options[]' name='options[]' multiple='multiple'>";
|
| 597: | $ranks = XoopsLists::getUserRankList();
|
| 598: | $size = count($options);
|
| 599: | foreach ($ranks as $k => $v) {
|
| 600: | $sel = '';
|
| 601: | for ($i = 2; $i < $size; ++$i) {
|
| 602: | if ($k == $options[$i]) {
|
| 603: | $sel = " selected";
|
| 604: | }
|
| 605: | }
|
| 606: | $form .= "<option value='$k'$sel>$v</option>";
|
| 607: | }
|
| 608: | $form .= '</select>';
|
| 609: |
|
| 610: | return $form;
|
| 611: | }
|
| 612: |
|
| 613: | |
| 614: | |
| 615: | |
| 616: | |
| 617: |
|
| 618: | function b_system_newmembers_edit($options)
|
| 619: | {
|
| 620: | $inputtag = "<input type='text' name='options[]' value='" . $options[0] . "' />";
|
| 621: | $form = sprintf(_MB_SYSTEM_DISPLAY, $inputtag);
|
| 622: | $form .= '<br>' . _MB_SYSTEM_DISPLAYA . " <input type='radio' id='options[]' name='options[]' value='1'";
|
| 623: | if ($options[1] == 1) {
|
| 624: | $form .= " checked";
|
| 625: | }
|
| 626: | $form .= ' /> ' . _YES . "<input type='radio' id='options[]' name='options[]' value='0'";
|
| 627: | if ($options[1] == 0) {
|
| 628: | $form .= " checked";
|
| 629: | }
|
| 630: | $form .= ' /> ' . _NO . '';
|
| 631: |
|
| 632: | return $form;
|
| 633: | }
|
| 634: |
|
| 635: | |
| 636: | |
| 637: | |
| 638: | |
| 639: |
|
| 640: | function b_system_info_edit($options)
|
| 641: | {
|
| 642: | $form = _MB_SYSTEM_PWWIDTH . ' ';
|
| 643: | $form .= "<input type='text' name='options[]' value='" . $options[0] . "' />";
|
| 644: | $form .= '<br>' . _MB_SYSTEM_PWHEIGHT . ' ';
|
| 645: | $form .= "<input type='text' name='options[]' value='" . $options[1] . "' />";
|
| 646: | $form .= '<br>' . sprintf(_MB_SYSTEM_LOGO, XOOPS_URL . '/images/') . ' ';
|
| 647: | $form .= "<input type='text' name='options[]' value='" . $options[2] . "' />";
|
| 648: | $chk = '';
|
| 649: | $form .= '<br>' . _MB_SYSTEM_SADMIN . ' ';
|
| 650: | if ($options[3] == 1) {
|
| 651: | $chk = " checked";
|
| 652: | }
|
| 653: | $form .= "<input type='radio' name='options[3]' value='1'" . $chk . ' /> ' . _YES . '';
|
| 654: | $chk = '';
|
| 655: | if ($options[3] == 0) {
|
| 656: | $chk = " checked";
|
| 657: | }
|
| 658: | $form .= " <input type='radio' name='options[3]' value='0'" . $chk . ' />' . _NO . '';
|
| 659: |
|
| 660: | return $form;
|
| 661: | }
|
| 662: |
|
| 663: | |
| 664: | |
| 665: | |
| 666: | |
| 667: |
|
| 668: | function b_system_themes_show($options)
|
| 669: | {
|
| 670: | global $xoopsConfig;
|
| 671: | $block = array();
|
| 672: |
|
| 673: | if (!isset($options[2])) {
|
| 674: | $options[2] = 3;
|
| 675: | }
|
| 676: | $selectSize = ($options[0] == 1) ? 1 : (int) $options[2];
|
| 677: | $select = new XoopsFormSelect('', 'xoops_theme_select', $xoopsConfig['theme_set'], $selectSize);
|
| 678: | foreach ($xoopsConfig['theme_set_allowed'] as $theme) {
|
| 679: | $select->addOption($theme, $theme);
|
| 680: | }
|
| 681: |
|
| 682: | if ($options[0] == 1) {
|
| 683: | $themeSelect = '<img vspace="2" id="xoops_theme_img" src="'
|
| 684: | . XOOPS_THEME_URL . '/' . $xoopsConfig['theme_set'] . '/shot.gif" '
|
| 685: | . ' alt="screenshot" width="' . (int)$options[1] . '" />'
|
| 686: | . '<br>';
|
| 687: | $select->setExtra(' onchange="showImgSelected(\'xoops_theme_img\', \'xoops_theme_select\', \'themes\', \'/shot.gif\', '
|
| 688: | . '\'' . XOOPS_URL . '\');" ');
|
| 689: | $selectTray = new XoopsFormElementTray('');
|
| 690: | $selectTray->addElement($select);
|
| 691: | $selectTray->addElement(new XoopsFormButton('', 'submit', _GO, 'submit'));
|
| 692: | $themeSelect .= '<div class="form-inline">';
|
| 693: | $themeSelect .= $selectTray->render();
|
| 694: | $themeSelect .= '</div>';
|
| 695: | } else {
|
| 696: | $select->setExtra(' onchange="submit();" ');
|
| 697: | $themeSelect = $select->render();
|
| 698: | }
|
| 699: |
|
| 700: | $block['theme_select'] = $themeSelect . '<br>(' . sprintf(_MB_SYSTEM_NUMTHEME, '<strong>'
|
| 701: | . count($xoopsConfig['theme_set_allowed']) . '</strong>') . ')<br>';
|
| 702: |
|
| 703: | return $block;
|
| 704: | }
|
| 705: |
|
| 706: | |
| 707: | |
| 708: | |
| 709: | |
| 710: |
|
| 711: | function b_system_themes_edit($options)
|
| 712: | {
|
| 713: | $chk = '';
|
| 714: | $form = _MB_SYSTEM_THSHOW . ' ';
|
| 715: | if (!isset($options[2])) {
|
| 716: | $options[2] = 3;
|
| 717: | }
|
| 718: | if ($options[0] == 1) {
|
| 719: | $chk = " checked";
|
| 720: | }
|
| 721: | $form .= "<input type='radio' name='options[0]' value='1'" . $chk . ' /> ' . _YES;
|
| 722: | $chk = '';
|
| 723: | if ($options[0] == 0) {
|
| 724: | $chk = ' checked';
|
| 725: | }
|
| 726: | $form .= ' <input type="radio" name="options[0]" value="0"' . $chk . ' />' . _NO;
|
| 727: | $form .= '<br>' . _MB_SYSTEM_THWIDTH . ' ';
|
| 728: | $form .= "<input type='text' name='options[1]' value='" . $options[1] . "' />";
|
| 729: | $form .= '<br>' . _MB_SYSTEM_BLOCK_HEIGHT . ' ';
|
| 730: | $form .= "<input type='text' name='options[2]' value='" . $options[2] . "' />";
|
| 731: |
|
| 732: | return $form;
|
| 733: | }
|
| 734: | |