예제 #1
0
 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;
 }
예제 #2
0
 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;
 }
예제 #3
0
 function getPermission($forum, $type = "access", $checkCategory = true)
 {
     global $xoopsUser, $xoopsModule;
     static $_cachedPerms;
     if ($type == "all") {
         return true;
     }
     if ($GLOBALS["xoopsUserIsAdmin"] && $xoopsModule->getVar("dirname") == "newbb") {
         return true;
     }
     if (!is_object($forum)) {
         $forum =& $this->get($forum);
     }
     if (!empty($checkCategory)) {
         $category_handler =& xoops_getmodulehandler('category', 'newbb');
         $categoryPerm = $category_handler->getPermission($forum->getVar('cat_id'));
         if (!$categoryPerm) {
             return false;
         }
     }
     $type = strtolower($type);
     if ("moderate" == $type) {
         require_once XOOPS_ROOT_PATH . "/modules/newbb/include/functions.user.php";
         $permission = newbb_isModerator($forum);
     } else {
         $forum_id = $forum->getVar('forum_id');
         $perm_handler =& xoops_getmodulehandler('permission', 'newbb');
         $permission = $perm_handler->getPermission("forum", $type, $forum_id);
     }
     return $permission;
 }