function &show_online() { global $xoopsModuleConfig, $forumImage; if ($this->forumtopic) { $num_total = $this->getCount(new Criteria('online_topic', $this->forumtopic)); } elseif ($this->forum) { $num_total = $this->getCount(new Criteria('online_forum', $this->forum)); } else { $num_total = $this->getCount(); } if ($this->forumtopic) { $criteria = new CriteriaCompo(new Criteria('online_topic', $this->forumtopic)); $criteria->add(new Criteria('online_uid', '0', '<>')); } elseif ($this->forum) { $criteria = new CriteriaCompo(new Criteria('online_forum', $this->forum)); $criteria->add(new Criteria('online_uid', '0', '<>')); } else { $criteria = new Criteria('online_uid', '0', '<>'); } $users =& $this->getAll($criteria); $num_user = count($users); $num_anonymous = $num_total - $num_user; $online = array(); $online['image'] = newbb_displayImage($forumImage['whosonline']); $online['num_total'] = $num_total; $online['num_user'] = $num_user; $online['num_anonymous'] = $num_anonymous; for ($i = 0; $i < $num_user; $i++) { $online['users'][$i]['link'] = XOOPS_URL . "/userinfo.php?uid=" . $users[$i]['online_uid']; $online['users'][$i]['uname'] = $users[$i]['online_uname']; if (newbb_isAdministrator($users[$i]['online_uid'])) { $online['users'][$i]['color'] = $xoopsModuleConfig['wol_admin_col']; } elseif (newbb_isModerator($this->forum_object, $users[$i]['online_uid'])) { $online['users'][$i]['color'] = $xoopsModuleConfig['wol_mod_col']; } else { $online['users'][$i]['color'] = ""; } } return $online; }
function newbb_checkSubjectPrefixPermission($forum = 0, $user = -1) { global $xoopsUser, $xoopsModuleConfig; if ($xoopsModuleConfig['subject_prefix_level'] < 1) { return false; } if ($xoopsModuleConfig['subject_prefix_level'] == 1) { return true; } if ($user == -1) { $user =& $xoopsUser; } if (!is_object($user) && intval($user) < 1) { return false; } $uid = is_object($user) ? $user->getVar('uid') : intval($user); if ($xoopsModuleConfig['subject_prefix_level'] == 2) { return true; } if ($xoopsModuleConfig['subject_prefix_level'] == 3) { if (newbb_isAdmin($forum, $user)) { return true; } else { return false; } } if ($xoopsModuleConfig['subject_prefix_level'] == 4) { if (newbb_isAdministrator($user)) { return true; } } return false; }
function getPermission($forum, $type = "access") { global $xoopsUser, $xoopsModule; static $_cachedPerms; if ($type == "all") { return true; } if (newbb_isAdministrator()) { return true; } if (is_int($forum)) { $forum = $this->get($forum); } if ($forum->getVar('forum_type')) { return false; } // if forum inactive, all has no access except admin $category_handler =& xoops_getmodulehandler('category', 'newbb'); $categoryPerm =& $category_handler->getPermission($forum->getVar('cat_id')); if (!$categoryPerm) { return false; } $type = strtolower($type); if ("moderate" == $type) { $permission = newbb_isModerator($forum) ? 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', 'newbb'); $_cachedPerms[$perm_type] = $getpermission->getPermissions($perm_type); } $permission = isset($_cachedPerms[$perm_type][$forum->getVar('forum_id')][$perm_item]) ? 1 : 0; } return $permission; }
function getPermission($category) { global $xoopsUser, $xoopsModule; static $_cachedCategoryPerms; if (newbb_isAdministrator()) { return true; } if (!isset($_cachedCategoryPerms)) { $getpermission =& xoops_getmodulehandler('permission', 'newbb'); $_cachedCategoryPerms = $getpermission->getPermissions("category"); } if (!is_object($category)) { $category =& $this->get(intval($category)); } $permission = isset($_cachedCategoryPerms[$category->getVar('cat_id')]['category_access']) ? 1 : 0; if ($category->getVar('cat_state')) { $permission = 0; } // if category inactive, all has no access except admin return $permission; }