function &show_online() { global $xoopsModuleConfig, $xforumImage; if ($this->forumtopic) { $criteria = new Criteria('online_topic', $this->forumtopic); } elseif ($this->forum) { $criteria = new Criteria('online_forum', $this->forum); } else { $criteria = null; } $users =& $this->getAll($criteria); $num_total = count($users); $num_user = 0; $users_id = array(); $users_online = array(); for ($i = 0; $i < $num_total; $i++) { if(empty($users[$i]['online_uid'])) continue; $users_id[] = $users[$i]['online_uid']; $users_online[$users[$i]['online_uid']] = array( "link" => XOOPS_URL . "/userinfo.php?uid=" . $users[$i]['online_uid'], "uname" => $users[$i]['online_uname'], ); $num_user ++; } $num_anonymous = $num_total - $num_user; $online = array(); $online['image'] = forum_displayImage($xforumImage['whosonline']); $online['num_total'] = $num_total; $online['num_user'] = $num_user; $online['num_anonymous'] = $num_anonymous; $administrator_list = forum_isModuleAdministrators($users_id, $GLOBALS["xoopsModule"]->getVar("mid")); foreach ($users_online as $uid=>$user) { if(!empty($administrator_list[$uid])){ $user['level']= 2; } elseif(forum_isModerator($this->forum_object, $uid)){ $user['level']= 1; } else{ $user['level']= 0; } $online["users"][] = $user; } return $online; }
function getPermission($xforum, $type = "access", $checkCategory = true) { global $xoopsUser, $xoopsModule; static $_cachedPerms; include_once XOOPS_ROOT_PATH.'/modules/xforum/include/functions.php'; if($type == "all") return true; if (forum_isAdministrator()) return true; if (!is_object($xforum)) $xforum =& $this->get($xforum); if ($xforum->getVar('forum_type')) return false;// if forum inactive, all has no access except admin if(!empty($checkCategory)){ $category_handler =& xoops_getmodulehandler('category', 'xforum'); $categoryPerm = $category_handler->getPermission($xforum->getVar('cat_id')); if (!$categoryPerm) return false; } $type = strtolower($type); if ("moderate" == $type) { $permission = (forum_isModerator($xforum))?1:0; } else { $perms = array_map("trim",explode(',', FORUM_PERM_ITEMS)); $perm_type = 'forum'; $perm_item = (in_array($type, $perms))?'forum_' . $type:"forum_access"; if (!isset($_cachedPerms[$perm_type])) { $getpermission =& xoops_getmodulehandler('permission', 'xforum'); $_cachedPerms[$perm_type] = $getpermission->getPermissions($perm_type); } $permission = (isset($_cachedPerms[$perm_type][$xforum->getVar('forum_id')][$perm_item])) ? 1 : 0; } return $permission; }