-1
このコードの目的は、別のデータベースのusergroupを割り当てることです。私はどのgroup_idがどのrole_idとAdminに属しているかを指定するスイッチを作成しました。次のようにのみデフォルトケースを認識するために...私のコードは次のとおりです。PHPスイッチがMySQLのPHPから登録されていない
$result2 = $DB->query("SELECT group_id, picture, joindate from ".DB_PREFIX."members where member_id = '".$member_id."'");
if ($DB->num_rows($result)){
$member_obj = $DB->fetch_object($result2);
}
if (!empty($member_obj)){
$member_group_id = $member_obj->group_id;
}
switch ($member_group_id) {
case 1: //Admins
$user_data['role_id'] = "16";
$user_data['admin'] = "1";
break;
case 2: //freemembers
$user_data['role_id'] = "8";
$user_data['admin'] = "0";
break;
case 3: //guests
$user_data['role_id'] = "2";
$user_data['admin'] = "0";
break;
case 4: //pending members
$user_data['role_id'] = "2";
$user_data['admin'] = "0";
break;
case 5: //chatter package members
$user_data['role_id'] = "34";
$user_data['admin'] = "0";
break;
case 6: //cancelled members
$user_data['role_id'] = "2";
$user_data['admin'] = "0";
break;
case 7: //Socialite Member
$user_data['role_id'] = "35";
$user_data['admin'] = "0";
break;
case 8: //socialgod members
$user_data['role_id'] = "36";
$user_data['admin'] = "0";
break;
case 10: //chatadmins
$user_data['role_id'] = "33";
$user_data['admin'] = "0";
break;
case 11: //forummods
$user_data['role_id'] = "2";
$user_data['admin'] = "0";
break;
default: //Guests
$user_data['role_id'] = "8";
$user_data['admin'] = "0";
break;
}
次のようにサイトを更新するために実行されるSQLは次のとおりです。
// new member
if (! $arrUserID['user_id']) {
$where_sql .= ", DateFirstVisit = '{$user_data['joindate']}',
DateInserted = '{$user_data['joindate']}',
DateUpdated = '{$user_data['joindate']}'";
$MDB->query("INSERT INTO ".$PREFS->conf['module_vanilla_table_prefix']."User {$where_sql}");
$arrUserID['user_id'] = $MDB->get_insert_id();
if ($arrUserID['user_id']) {
$MDB->query("INSERT INTO ".$PREFS->conf['module_vanilla_table_prefix']."UserRole SET UserID={$arrUserID['user_id']}, RoleID={$user_data['role_id']}");
}
}
// existing member
else {
$MDB->query("UPDATE ".$PREFS->conf['module_vanilla_table_prefix']."User {$where_sql} WHERE UserID = {$arrUserID['user_id']} LIMIT 1");
$MDB->query("UPDATE ".$PREFS->conf['module_vanilla_table_prefix']."UserRole SET RoleID={$user_data['role_id']} WHERE UserID = {$arrUserID['user_id']} LIMIT 1");
}
$場合だけでは、例えば明確にしますmember_group_idが1の場合は、role_idを16に設定し、adminを1に設定する必要があります。ただし、auto defaul tsからrole_id 8までadmin 0
ご意見はありますか?
なぜあなたは大部分が*管理者ではないと定義していますか?なぜそれをデフォルトにして、誰かが管理者ならば*変更するだけでいいのですか? – Nytrix
こんにちは@Nytrixその奇妙なバニラフォーラムの仕組み....管理者= 1の場合でも、ロールが16に設定されるまでユーザーはまだ管理者ではありません... –
これは常にデフォルトの場合、 $ member_group_idを空白にしているスイッチの前にあるステートメント。 $ member_objに値があるかどうかを確認するためにエコーを行います。これがスイッチのデフォルト設定です。 – OfficialDtech