\n"; if (!$optlist || strpos($optlist, "public") !== FALSE) { $s = ($curval == e_UC_PUBLIC) ? "selected='selected'" : ""; $text .= "\n"; } if (!$optlist || strpos($optlist, "guest") !== FALSE) { $s = ($curval == e_UC_GUEST) ? "selected='selected'" : ""; $text .= "\n"; } if (!$optlist || strpos($optlist, "nobody") !== FALSE) { $s = ($curval == e_UC_NOBODY) ? "selected='selected'" : ""; $text .= "\n"; } if (!$optlist || strpos($optlist, "member") !== FALSE) { $s = ($curval == e_UC_MEMBER) ? "selected='selected'" : ""; $text .= "\n"; } if ($mode != "off" || strpos($optlist, "admin") !== FALSE) { $s = ($curval == e_UC_ADMIN) ? "selected='selected'" : ""; $text .= "\n"; } if ($mode != "off" || strpos($optlist, "main") !== FALSE) { $s = ($curval == e_UC_MAINADMIN) ? "selected='selected'" : ""; $text .= "\n"; } if (!$optlist || strpos($optlist, "classes") !== FALSE) { $classList = get_userclass_list(); foreach($classList as $row) { if (strpos($optlist, "matchclass") === FALSE || getperms("0") || check_class($userclass_id)) { $s = ($row['userclass_id'] == $curval) ? "selected='selected'" : ""; $text .= "\n"; } } } if (($mode != "off" && $mode != "admin") || strpos($optlist, "readonly") !== FALSE) { $s = ($curval == e_UC_READONLY) ? "selected='selected'" : ""; $text .= "\n"; } if (strpos($optlist, "language") !== FALSE && $pref['multilanguage']) { $text .= "\n"; $tmpl = explode(",",e_LANLIST); foreach($tmpl as $lang){ $s = ($curval == $lang) ? " selected='selected'" : ""; $text .= "\n"; } } $text .= "\n"; return $text; } function r_userclass_radio($fieldname, $curval = '') { ($curval == e_UC_PUBLIC) ? $c = " checked" : $c = ""; $text = "".UC_LAN_0."
"; ($curval == e_UC_NOBODY) ? $c = " checked" : $c = ""; $text .= "".UC_LAN_2."
"; ($curval == e_UC_GUEST) ? $c = " checked" : $c = ""; $text .= "".UC_LAN_1."
"; ($curval == e_UC_MEMBER) ? $c = " checked" : $c = ""; $text .= "".UC_LAN_3."
"; $classList = get_userclass_list(); foreach($classList as $row) { ($row['userclass_id'] == $curval) ? $c = " checked" : $c = ""; $text .= "{$row['userclass_name']}
"; } return $text; } function r_userclass_check($fieldname, $curval = '', $optlist = "", $divheight = 58) { global $pref; $curArray = explode(",", $curval); $ret = ""; if($divheight > 0) { $ret .= "
"; } if (!$optlist || strpos($optlist, "public") !== FALSE) { $c = (in_array(e_UC_PUBLIC, $curArray)) ? " checked='checked' " : ""; $ret .= "
"; } if (!$optlist || strpos($optlist, "guest") !== FALSE) { $c = (in_array(e_UC_GUEST, $curArray)) ? " checked='checked' " : ""; $ret .= "
"; } if (!$optlist || strpos($optlist, "nobody") !== FALSE) { $c = (in_array(e_UC_NOBODY, $curArray)) ? " checked='checked' " : ""; $ret .= "
"; } if (!$optlist || strpos($optlist, "member") !== FALSE) { $c = (in_array(e_UC_MEMBER, $curArray)) ? " checked='checked' " : ""; $ret .= "
"; } if (!$optlist || strpos($optlist, "admin") !== FALSE) { $c = (in_array(e_UC_ADMIN, $curArray)) ? " checked='checked' " : ""; $ret .= "
"; } if (!$optlist || strpos($optlist, "readonly") !== FALSE) { $c = (in_array(e_UC_READONLY, $curArray)) ? " checked='checked' " : ""; $ret .= "
"; } if (!$optlist || strpos($optlist, "classes") !== FALSE) { $classList = get_userclass_list(); foreach($classList as $row) { if (strpos($optlist, "matchclass") === FALSE || getperms("0") || check_class($row['userclass_id'])) { $c = (in_array($row['userclass_id'], $curArray)) ? " checked='checked' " : ""; $ret .= "
"; } } } if (strpos($optlist, "language") !== FALSE && $pref['multilanguage']) { $ret .= "
\n"; $tmpl = explode(",",e_LANLIST); foreach($tmpl as $lang){ $c = (in_array($lang, $curArray)) ? " checked='checked' " : ""; $ret .= "
"; } } if($divheight > 0) { $ret .= "
"; } return $ret; } function get_userclass_list() { if($classList = getcachedvars('uclass_list')) { return $classList; } else { global $sql; $sql->db_Select('userclass_classes', "*", "ORDER BY userclass_name", "nowhere"); $classList = $sql->db_getList(); cachevars('uclass_list', $classList); return $classList; } } function r_userclass_name($id) { $class_names = getcachedvars('userclass_names'); if(!is_array($class_names)) { $sql = new db; $class_names[e_UC_PUBLIC] = UC_LAN_0; $class_names[e_UC_GUEST] = UC_LAN_1; $class_names[e_UC_NOBODY] = UC_LAN_2; $class_names[e_UC_MEMBER] = UC_LAN_3; $class_names[e_UC_READONLY] = UC_LAN_4; $class_names[e_UC_ADMIN] = UC_LAN_5; if ($sql->db_Select("userclass_classes", "userclass_id, userclass_name", "ORDER BY userclass_name", "nowhere")) { while($row = $sql->db_Fetch()) { $class_names[$row['userclass_id']] = $row['userclass_name']; } } cachevars('userclass_names', $class_names); } return $class_names[$id]; } class e_userclass { function class_add($cid, $uinfoArray) { global $tp; $sql2 = new db; foreach($uinfoArray as $uid => $curclass) { if ($curclass) { $newarray = array_unique(array_merge(explode(',', $curclass), array($cid))); $new_userclass = implode(',', $newarray); } else { $new_userclass = $cid; } $sql2->db_Update('user', "user_class='".$tp -> toDB($new_userclass, true)."' WHERE user_id=".intval($uid)); } } function class_remove($cid, $uinfoArray) { global $tp; $sql2 = new db; foreach($uinfoArray as $uid => $curclass) { $newarray = array_diff(explode(',', $curclass), array('', $cid)); if (count($newarray) > 1) { $new_userclass = implode(',', $newarray); } else { $new_userclass = $newarray[0]; } $sql2->db_Update('user', "user_class='".$tp -> toDB($new_userclass, true)."' WHERE user_id=".intval($uid)); } } function class_create($ulist, $class_prefix = "NEW_CLASS_", $num = 0) { global $sql; $varname = "uc_".$ulist; if($ret = getcachedvars($varname)) { return $ret; } $ul = explode(",", $ulist); array_walk($ul, array($this, 'munge')); $qry = " SELECT user_id, user_class from #user AS u WHERE user_name = ".implode(" OR user_name = ", $ul); if($sql->db_Select_gen($qry)) { while($row = $sql->db_Fetch()) { $idList[$row['user_id']] = $row['user_class']; } while($sql->db_Count("userclass_classes","(*)","WHERE userclass_name = '".strtoupper($class_prefix.$num)."'")) { $num++; } $newname = strtoupper($class_prefix.$num); $i = 1; while ($sql->db_Select('userclass_classes', '*', "userclass_id='".intval($i)."' ") && $i < 255) { $i++; } if ($i < 255) { $sql->db_Insert("userclass_classes", "{$i}, '{$newname}', 'Auto_created_class', 254"); $this->class_add($i, $idList); cachevars($varname, $i); return $i; } } } function munge(&$value, &$key) { $value = "'".trim($value)."'"; } } ?>