Esempio n. 1
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;
 }
Esempio n. 2
0
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;
}
Esempio n. 3
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;
 }
Esempio n. 4
0
 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;
 }