+ الرد على الموضوع
النتائج 1 إلى 4 من 4
  1. #1
    نعنوع سيهات is on a distinguished road
    تاريخ التسجيل
    23 / 04 / 2006
    الدولة
    السعودية
    العمر
    48
    المشاركات
    44
    معدل تقييم المستوى
    264

    Smi98 الفزعة يالربع " كيف عن طريق cPanel اغير الادمن "

    السلام عليكم

    اخواني انا اقول لكم القصة تم اتفاق مع شخص لتركيب استايل وهاكات
    الرجال اخوي الله يهديه ويهدي الجميع عمل يوزر بصلاحيات كامله الاخ ماصدق
    بعد اختلاف في بعض الامور والسعر نزل الادمن واي شخص يقدر يدخل لوحة التحكم
    وعرض المنتدى للبيع والله . وانا دخلت عن طريق cPanel كيف انزله وارفع الادمن
    او اعدل الايميل والباسورد لانه غيرهم .


    الله يرحم والديكم ابي منكم الفزعة يالربع ......................... ....

     
  2. #2
    المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute الصورة الرمزية المودة
    تاريخ التسجيل
    17 / 08 / 2004
    العمر
    32
    المشاركات
    20,806
    معدل تقييم المستوى
    26157

    افتراضي رد: الفزعة يالربع " كيف عن طريق cPanel اغير الادمن "

    روح قاعدة البيانات الخاصة بالمنتدى وإبحث عن العضو المطلوب برقمه وفي usergroupid عدل الرقم إلى 6 وهو رقم مجموعة المشرفين ... ثم ادخل لوحة التحكم وعدل جميع المشرفين وكذلك تعديل كلمة السر الخاصة بالموقع والحمايات ... تحياتي .

     
  3. #3
    نعنوع سيهات is on a distinguished road
    تاريخ التسجيل
    23 / 04 / 2006
    الدولة
    السعودية
    العمر
    48
    المشاركات
    44
    معدل تقييم المستوى
    264

    افتراضي رد: الفزعة يالربع " كيف عن طريق cPanel اغير الادمن "

    ابو راشد الله يرحم والديك

    هذا الكود حق الملف نفسه usergroubid

    انا اليوزر حقي اسود والاخ الى سرق المنتدى احمر كل انزله وارفع نفسي ممكن توضحلي اكثر

    <?php
    /*======================== ========================= =====================*\
    || ######################### ######################### ################## ||
    || # vBulletin 3.5.4 - Licence Number $sm_lickey
    || # ---------------------------------------------------------------- # ||
    || # Copyright ©2000-2006 Jelsoft Enterprises Ltd. All Rights Reserved. ||
    || # This file may not be redistributed in whole or significant part. # ||
    || # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
    || # http://www.vbulletin.com | http://www.vbulletin.com/license.html # ||
    || ######################### ######################### ################## ||
    \*======================= ========================= ======================*/

    // ######################## SET PHP ENVIRONMENT ######################### ##
    error_reporting(E_ALL & ~E_NOTICE);

    // ##################### DEFINE IMPORTANT CONSTANTS #######################
    define('CVS_REVISION', '$RCSfile: usergroup.php,v $ - $Revision: 1.180.2.1 $');

    // #################### PRE-CACHE TEMPLATES AND DATA ######################
    $phrasegroups = array('cppermission', 'cpuser', 'promotion', 'pm', 'cpusergroup');
    $specialtemplates = array();

    // ######################### # REQUIRE BACK-END ######################### ###
    require_once('./global.php');
    require_once(DIR . '/includes/functions_ranks.php');

    // ######################## CHECK ADMIN PERMISSIONS #######################
    if (!can_administer('canadmi npermissions'))
    {
    print_cp_no_permission();
    }

    // ######################### #### LOG ACTION ######################### ######
    $vbulletin->input->clean_array_gpc('r', array(
    'usergroupid' => TYPE_INT,
    'usergroupleaderid' => TYPE_INT,
    ));

    log_admin_action(!empty($ vbulletin->GPC['usergroupid']) ? "usergroup id = " . $vbulletin->GPC['usergroupid'] : (!empty($vbulletin->GPC['usergroupleaderid']) ? "leader id = " . $vbulletin->GPC['usergroupleaderid'] : ''));

    // ######################### ######################### ######################
    // ######################### START MAIN SCRIPT ######################### ###
    // ######################### ######################### ######################

    print_cp_header($vbphrase['usergroup_manager']);

    if (empty($_REQUEST['do']))
    {
    $_REQUEST['do'] = 'modify';
    }

    // ###################### Start getuserid #######################
    function fetch_userid_from_usernam e($username)
    {
    global $vbulletin;
    if ($user = $vbulletin->db->query_first("SELECT userid FROM " . TABLE_PREFIX . "user WHERE username = '" . $vbulletin->db->escape_string(trim($user name)) . "'"))
    {
    return $user['userid'];
    }
    else
    {
    return false;
    }
    }

    // ###################### Start add / update #######################
    if ($_REQUEST['do'] == 'add' OR $_REQUEST['do'] == 'edit')
    {

    $vbulletin->input->clean_array_gpc('r', array(
    'defaultgroupid' => TYPE_INT
    ));

    require_once(DIR . '/includes/class_bitfield_builder.ph p');
    if (vB_Bitfield_Builder::bui ld(false) !== false)
    {
    $myobj =& vB_Bitfield_Builder::init ();
    if (sizeof($myobj->datastore_total['ugp']) != sizeof($vbulletin->bf_ugp))
    {
    $myobj->save($db);
    build_forum_permissions() ;
    define('CP_REDIRECT', $vbulletin->scriptpath);
    print_stop_message('rebui lt_bitfields_successfully ');
    }
    }
    else
    {
    echo "<strong>error</strong>\n";
    print_r(vB_Bitfield_Build er::fetch_errors());
    }

    if ($_REQUEST['do'] == 'add')
    {
    // get a list of other usergroups to base this one off of
    print_form_header('usergr oup', 'add');
    $groups = $db->query_read("SELECT usergroupid, title FROM " . TABLE_PREFIX . "usergroup ORDER BY title");
    $selectgroups = '';
    while ($group = $db->fetch_array($groups))
    {
    $selectgroups .= "<option value=\"$group[usergroupid]\" " . iif($group['usergroupid'] == $vbulletin->GPC['defaultgroupid'], 'selected="selected"') . ">$group[title]</option>\n";
    }
    print_description_row(con struct_table_help_button( 'defaultgroupid') . '<b>' . $vbphrase['create_usergroup_based_o ff_of_usergroup'] . '</b> <select name="defaultgroupid" tabindex="1" class="bginput">' . $selectgroups . '</select> <input type="submit" class="button" value="' . $vbphrase['go'] . '" tabindex="1" />', 0, 2, 'tfoot', 'center');
    print_table_footer();
    }

    print_form_header('usergr oup', 'update');
    print_column_style_code(a rray('width: 70%', 'width: 30%'));

    if ($_REQUEST['do'] == 'add')
    {
    if (!empty($vbulletin->GPC['defaultgroupid']))
    {
    // set defaults to this group's info
    $usergroup = $db->query_first("
    SELECT * FROM " . TABLE_PREFIX . "usergroup
    WHERE usergroupid = " . $vbulletin->GPC['defaultgroupid'] . "
    ");

    $ug_bitfield = array();
    foreach($vbulletin->bf_ugp AS $permissiongroup => $fields)
    {
    $ug_bitfield["$permissiongroup"] = convert_bits_to_array($us ergroup["$permissiongroup"], $fields);
    }
    }
    else
    {
    $ug_bitfield = array(
    'genericoptions' => array('showgroup' => 1, 'showeditedby' => 1),
    'forumpermissions' => array('canview' => 1, 'canviewothers' => 1, 'cangetattachment' => 1,
    'cansearch' => 1, 'canthreadrate' => 1, 'canpostattachment' => 1, 'canpostpoll' => 1, 'canvote' => 1, 'canviewthreads' => 1),
    'wolpermissions' => array('canwhosonline' => 1),
    'genericpermissions' => array('canviewmembers' => 1, 'canmodifyprofile' => 1, 'canseeprofilepic' => 1, 'canusesignature' => 1, 'cannegativerep' => 1, 'canuserep' => 1, 'cansearchft_nl' => 1)
    );
    // set default numeric permissions
    $usergroup = array(
    'pmquota' => 0, 'pmsendmax' => 5, 'attachlimit' => 1000000,
    'avatarmaxwidth' => 50, 'avatarmaxheight' => 50, 'avatarmaxsize' => 20000,
    'profilepicmaxwidth' => 100, 'profilepicmaxheight' => 100, 'profilepicmaxsize' => 25000
    );
    }
    print_table_header($vbphr ase['add_new_usergroup']);
    }
    else
    {
    $usergroup = $db->query_first("
    SELECT * FROM " . TABLE_PREFIX . "usergroup
    WHERE usergroupid = " . $vbulletin->GPC['usergroupid'] . "
    ");

    $ug_bitfield = array();
    foreach($vbulletin->bf_ugp AS $permissiongroup => $fields)
    {
    $ug_bitfield["$permissiongroup"] = convert_bits_to_array($us ergroup["$permissiongroup"], $fields);
    }
    construct_hidden_code('us ergroupid', $vbulletin->GPC['usergroupid']);
    print_table_header(constr uct_phrase($vbphrase['x_y_id_z'], $vbphrase['usergroup'],$usergroup[title], $usergroup[usergroupid]), 2, 0);
    }

    print_input_row($vbphrase['title'], 'usergroup[title]', $usergroup['title']);
    print_input_row($vbphrase['description'], 'usergroup[description]', $usergroup['description']);
    print_input_row($vbphrase['usergroup_user_title'], 'usergroup[usertitle]', $usergroup['usertitle']);
    print_label_row($vbphrase['username_markup'],
    '<span style="white-space:nowrap">
    <input size="15" type="text" class="bginput" name="usergroup[opentag]" value="' . htmlspecialchars_uni($use rgroup['opentag']) . '" tabindex="1" />
    <input size="15" type="text" class="bginput" name="usergroup[closetag]" value="' . htmlspecialchars_uni($use rgroup['closetag']) . '" tabindex="1" />
    </span>', '', 'top', 'htmltags');
    print_input_row($vbphrase['password_expiry'], 'usergroup[passwordexpires]', $usergroup['passwordexpires']);
    print_input_row($vbphrase['password_history'], 'usergroup[passwordhistory]', $usergroup['passwordhistory']);
    print_table_break();
    print_column_style_code(a rray('width: 70%', 'width: 30%'));

    if ($vbulletin->GPC['usergroupid'] > 7 OR $_REQUEST['do'] == 'add')
    {
    print_table_header($vbphr ase['public_group_settings']);
    print_yes_no_row($vbphras e['public_joinable_custom_u sergroup'], 'usergroup[ispublicgroup]', $usergroup['ispublicgroup']);
    print_yes_no_row($vbphras e['can_override_primary_gro up_title'], 'usergroup[canoverride]', $usergroup['canoverride']);
    print_table_break();
    print_column_style_code(a rray('width: 70%', 'width: 30%'));
    }

    ($hook = vBulletinHook::fetch_hook ('admin_usergroup_edit')) ? eval($hook) : false;

    foreach ($myobj->data['ugp'] AS $grouptitle => $perms)
    {
    foreach ($perms AS $permtitle => $permvalue)
    {
    if (empty($permvalue['group']))
    {
    continue;
    }
    $groupinfo["$permvalue[group]"]["$permtitle"] = array('phrase' => $permvalue['phrase'], 'value' => $permvalue['value'], 'parentgroup' => $grouptitle);
    if ($permvalue['intperm'])
    {
    $groupinfo["$permvalue[group]"]["$permtitle"]['intperm'] = true;
    }
    if (!empty($myobj->data['layout']["$permvalue[group]"]['ignoregroups']))
    {
    $groupinfo["$permvalue[group]"]['ignoregroups'] = $myobj->data['layout']["$permvalue[group]"]['ignoregroups'];
    }
    if (!empty($permvalue['ignoregroups']))
    {
    $groupinfo["$permvalue[group]"]["$permtitle"]['ignoregroups'] = $permvalue['ignoregroups'];
    }
    if (!empty($permvalue['options']))
    {
    $groupinfo["$permvalue[group]"]["$permtitle"]['options'] = $permvalue['options'];
    }
    }
    }

    foreach ($groupinfo AS $grouptitle => $group)
    {

    // This set of permissions is hidden from a specific group
    if (isset($group['ignoregroups']))
    {
    $ignoreids = explode(',', $group['ignoregroups']);
    if (in_array($vbulletin->GPC['usergroupid'], $ignoreids))
    {
    continue;
    }
    else
    {
    unset($group['ignoregroups']);
    }
    }

    print_table_header($vbphr ase["$grouptitle"]);

    foreach ($group AS $permtitle => $permvalue)
    {
    // Permission is shown only if a particular option is enabled.
    if (isset($permvalue['options']) AND !$vbulletin->options["$permvalue[options]"])
    {
    continue;
    }

    // Permission is hidden from specific groups
    if (isset($permvalue['ignoregroups']))
    {
    $ignoreids = explode(',', $permvalue['ignoregroups']);
    if (in_array($vbulletin->GPC['usergroupid'], $ignoreids))
    {
    continue;
    }
    }

    if (isset($permvalue['intperm']))
    {
    $getval = $usergroup["$permtitle"];

    if (isset($permvalue['readonly']))
    {
    // This permission is readonly for certain usergroups
    $readonlyids = explode(',', $permvalue['readonly']);
    if (in_array($vbulletin->GPC['usergroupid'], $readonlyids))
    {
    $getval = ($permvalue['readonlyvalue']) ? $permvalue['readonlyvalue'] : $getval;

    print_label_row($vbphrase["$permvalue[phrase]"], $getval);
    construct_hidden_code($vb phrase["$permvalue[phrase]"], $getval);
    continue;
    }
    }

    print_input_row($vbphrase["$permvalue[phrase]"], "usergroup[$permtitle]", $getval, 1, 20);
    }
    else
    {
    $getval = $ug_bitfield["$permvalue[parentgroup]"]["$permtitle"];

    if (isset($permvalue['readonly']))
    {
    // This permission is readonly for certain usergroups
    $readonlyids = explode(',', $permvalue['readonly']);
    if (in_array($vbulletin->GPC['usergroupid'], $readonlyids))
    {
    if ($permvalue['readonlyvalue'] == 'true')
    {
    print_yes_row($vbphrase["$permvalue[phrase]"], "usergroup[$permvalue[parentgroup]][$permtitle]", $vbphrase['yes'], true);
    }
    else
    {
    print_yes_row($vbphrase["$permvalue[phrase]"], "usergroup[$permvalue[parentgroup]][$permtitle]", $vbphrase['no'], false);
    }
    continue;
    }
    }

    print_yes_no_row($vbphras e["$permvalue[phrase]"], "usergroup[$permvalue[parentgroup]][$permtitle]", $getval);
    }
    }
    print_table_break();
    print_column_style_code(a rray('width: 70%', 'width: 30%'));
    }

    if ($_REQUEST['do'] == 'add')
    {
    $permgroups = $db->query_read("
    SELECT usergroup.usergroupid, title,
    (COUNT(forumpermission.fo rumpermissionid) + COUNT(calendarpermission. calendarpermissionid)) AS permcount
    FROM " . TABLE_PREFIX . "usergroup AS usergroup
    LEFT JOIN " . TABLE_PREFIX . "forumpermission AS forumpermission ON (usergroup.usergroupid = forumpermission.usergroup id)
    LEFT JOIN " . TABLE_PREFIX . "calendarpermission AS calendarpermission ON (usergroup.usergroupid = calendarpermission.usergr oupid)
    GROUP BY usergroup.usergroupid
    HAVING permcount > 0
    ORDER BY title
    ");
    $ugarr = array('-1' => '--- ' . $vbphrase['none'] . ' ---');
    while ($group = $db->fetch_array($permgroups) )
    {
    $ugarr["$group[usergroupid]"] = $group['title'];
    }
    print_table_header($vbphr ase['default_forum_permission s']);
    print_select_row($vbphras e['create_permissions_based _off_of_forum'], 'ugid_base', $ugarr);
    print_table_break();
    }

    print_submit_row(iif($_RE QUEST['do'] == 'add', $vbphrase['save'], $vbphrase['update']));
    }

    // ###################### Start insert / update #######################
    if ($_POST['do'] == 'update')
    {
    $vbulletin->input->clean_array_gpc('p', array(
    'usergroup' => TYPE_ARRAY,
    'ugid_base' => TYPE_INT,
    ));

    // create bitfield values
    require_once(DIR . '/includes/functions_misc.php');
    foreach($vbulletin->bf_ugp AS $permissiongroup => $fields)
    {
    $vbulletin->GPC['usergroup']["$permissiongroup"] = convert_array_to_bits($vb ulletin->GPC['usergroup']["$permissiongroup"], $fields, 1);
    }

    ($hook = vBulletinHook::fetch_hook ('admin_usergroup_save')) ? eval($hook) : false;

    if (!empty($vbulletin->GPC['usergroupid']))
    {
    // update
    if (!($vbulletin->GPC['usergroup']['adminpermissions'] & $vbulletin->bf_ugp_adminpermission s['cancontrolpanel']))
    { // check that not removing last admin group
    $checkadmin = $db->query_first("
    SELECT COUNT(*) AS usergroups
    FROM " . TABLE_PREFIX . "usergroup
    WHERE (adminpermissions & " . $vbulletin->bf_ugp_adminpermission s['cancontrolpanel'] . ") AND
    usergroupid <> " . $vbulletin->GPC['usergroupid'] . "
    ");
    if ($vbulletin->GPC['usergroupid'] == 6)
    { // stop them turning no control panel for usergroup 6, seems the most sensible thing
    print_stop_message('inval id_usergroup_specified');
    }
    if (!$checkadmin['usergroups'])
    {
    print_stop_message('cant_ delete_last_admin_group') ;
    }
    }
    $db->query_write(fetch_query_ sql($vbulletin->GPC['usergroup'], 'usergroup', "WHERE usergroupid=" . $vbulletin->GPC['usergroupid']));
    if (!($vbulletin->GPC['usergroup']['genericpermissions'] & $vbulletin->bf_ugp_genericpermission s['caninvisible']))
    { // make the users in this group invisible
    $db->query_write("
    UPDATE " . TABLE_PREFIX . "user
    SET options = (options & ~" . $vbulletin->bf_misc_useroptions['invisible'] . ")
    WHERE usergroupid = " . $vbulletin->GPC['usergroupid'] . "
    ");
    }
    if ($vbulletin->GPC['usergroup']['adminpermissions'] & $vbulletin->bf_ugp_adminpermission s['cancontrolpanel'])
    {
    $ausers = $db->query_write("
    SELECT user.userid
    FROM " . TABLE_PREFIX . "user AS user
    LEFT JOIN " . TABLE_PREFIX . "administrator as administrator ON (user.userid = administrator.userid)
    WHERE administrator.userid IS NULL AND
    user.usergroupid = " . $vbulletin->GPC['usergroupid'] . "
    ");
    while ($auser = $db->fetch_array($ausers))
    {
    $userids[] = $auser['userid'];
    }

    if (!empty($userids))
    {
    foreach ($userids AS $userid)
    {
    $admindm =& datamanager_init('Admin', $vbulletin, ERRTYPE_SILENT);
    $admindm->set('userid', $userid);
    $admindm->save();
    unset($admindm);
    }
    }
    }
    else if ($vbulletin->usergroupcache["{$vbulletin->GPC['usergroupid']}"]['adminpermissions'] & $vbulletin->bf_ugp_adminpermission s['cancontrolpanel'])
    {
    // lets find admin usergroupids
    $ausergroupids = array();
    $vbulletin->usergroupcache["{$vbulletin->GPC['usergroupid']}"]['adminpermissions'] = $vbulletin->GPC['usergroup']['adminpermissions'];
    foreach ($vbulletin->usergroupcache AS $ausergroupid => $ausergroup)
    {
    if ($ausergroup['adminpermissions'] & $vbulletin->bf_ugp_adminpermission s['cancontrolpanel'])
    {
    $ausergroupids[] = $ausergroupid;
    }
    }
    $ausergroupids = implode(',', $ausergroupids);
    $ausers = $db->query_read("
    SELECT userid FROM " . TABLE_PREFIX . "user
    WHERE usergroupid NOT IN ($ausergroupids)
    AND NOT FIND_IN_SET('$ausergroupi ds', membergroupids)
    AND (usergroupid = " . $vbulletin->GPC['usergroupid'] . "
    OR FIND_IN_SET('" . $vbulletin->GPC['usergroupid'] . "', membergroupids))
    ");

    while ($auser = $db->fetch_array($ausers))
    {
    $userids[] = $auser['userid'];
    }

    if (!empty($userids))
    {
    foreach ($userids AS $userid)
    {
    $info = array('userid' => $userid);

    $admindm =& datamanager_init('Admin', $vbulletin, ERRTYPE_ARRAY);
    $admindm->set_existing($info);
    $admindm->delete();
    unset($admindm);
    }
    }
    }
    }
    else
    {
    // insert
    /*insert query*/
    $db->query_write(fetch_query_ sql($vbulletin->GPC['usergroup'], 'usergroup'));
    $newugid = $db->insert_id();

    if ($vbulletin->GPC['ugid_base'] > 0)
    {
    $fperms = $db->query_read("
    SELECT * FROM " . TABLE_PREFIX . "forumpermission
    WHERE usergroupid = " . $vbulletin->GPC['ugid_base'] . "
    ");
    while ($fperm = $db->fetch_array($fperms))
    {
    unset($fperm['forumpermissionid']);
    $fperm['usergroupid'] = $newugid;
    /*insert query*/
    $db->query_write(fetch_query_ sql($fperm, 'forumpermission'));
    }

    $cperms = $db->query_read("
    SELECT * FROM " . TABLE_PREFIX . "calendarpermission
    WHERE usergroupid = " . $vbulletin->GPC['ugid_base'] . "
    ");
    while ($cperm = $db->fetch_array($cperms))
    {
    unset($cperm['calendarpermissionid']);
    $cperm['usergroupid'] = $newugid;
    /*insert query*/
    $db->query_write(fetch_query_ sql($cperm, 'calendarpermission'));
    }
    }
    }

    $markups = $db->query_read("
    SELECT usergroupid, opentag, closetag
    FROM " . TABLE_PREFIX . "usergroup
    WHERE opentag <> '' OR
    closetag <> ''
    ");
    $usergroupmarkup = array();
    while ($markup = $db->fetch_array($markups))
    {
    $usergroupmarkup["{$markup['usergroupid']}"]['opentag'] = $markup['opentag'];
    $usergroupmarkup["{$markup['usergroupid']}"]['closetag'] = $markup['closetag'];
    }

    require_once(DIR . '/includes/functions_databuild.php') ;
    build_birthdays();
    build_forum_permissions() ;

    define('CP_REDIRECT', 'usergroup.php?do=modify' );
    print_stop_message('saved _usergroup_x_successfully ', htmlspecialchars_uni($vbu lletin->GPC['usergroup']['title']));

    }

    // ###################### Start Remove #######################

    if ($_REQUEST['do'] == 'remove')
    {

    if ($vbulletin->GPC['usergroupid'] < 8)
    {
    print_stop_message('cant_ delete_usergroup');
    }
    else
    {
    print_delete_confirmation ('usergroup', $vbulletin->GPC['usergroupid'], 'usergroup', 'kill', 'usergroup', 0, $vbphrase['all_members_of_this_user group_will_revert']);
    }

    }

    // ###################### Start Kill #######################
    if ($_POST['do'] == 'kill')
    {

    // update users who are in this usergroup to be in the registered usergroup
    $db->query_write("UPDATE " . TABLE_PREFIX . "user SET usergroupid = 2 WHERE usergroupid = " . $vbulletin->GPC['usergroupid']);
    $db->query_write("UPDATE " . TABLE_PREFIX . "user SET displaygroupid = 0 WHERE displaygroupid = " . $vbulletin->GPC['usergroupid']);
    $db->query_write("UPDATE " . TABLE_PREFIX . "useractivation SET usergroupid = 2 WHERE usergroupid = " . $vbulletin->GPC['usergroupid']);
    $db->query_write("UPDATE " . TABLE_PREFIX . "subscription SET nusergroupid = -1 WHERE nusergroupid = " . $vbulletin->GPC['usergroupid']);
    $db->query_write("UPDATE " . TABLE_PREFIX . "subscriptionlog SET pusergroupid = 2 WHERE pusergroupid = " . $vbulletin->GPC['usergroupid']);

    // now get on with deleting stuff...
    $db->query_write("DELETE FROM " . TABLE_PREFIX . "usergroup WHERE usergroupid = " . $vbulletin->GPC['usergroupid']);
    $db->query_write("DELETE FROM " . TABLE_PREFIX . "forumpermission WHERE usergroupid = " . $vbulletin->GPC['usergroupid']);
    $db->query_write("DELETE FROM " . TABLE_PREFIX . "ranks WHERE usergroupid = " . $vbulletin->GPC['usergroupid']);
    $db->query_write("DELETE FROM " . TABLE_PREFIX . "usergrouprequest WHERE usergroupid = " . $vbulletin->GPC['usergroupid']);
    $db->query_write("DELETE FROM " . TABLE_PREFIX . "userpromotion WHERE usergroupid = " . $vbulletin->GPC['usergroupid'] . " OR joinusergroupid = " . $vbulletin->GPC['usergroupid']);
    $db->query_write("DELETE FROM " . TABLE_PREFIX . "imagecategorypermiss ion WHERE usergroupid = " . $vbulletin->GPC['usergroupid']);

    build_ranks();
    build_forum_permissions() ;

    // remove this group from users who have this group as a membergroup
    $updateusers = array();
    $casesql = '';
    $users = $db->query_read("
    SELECT userid, username, membergroupids
    FROM " . TABLE_PREFIX . "user
    WHERE FIND_IN_SET('" . $vbulletin->GPC['usergroupid'] . "', membergroupids)
    ");
    if ($db->num_rows($users))
    {
    while($user = $db->fetch_array($users))
    {
    $membergroups = fetch_membergroupids_arra y($user, false);
    foreach($membergroups AS $key => $val)
    {
    if ($val == $vbulletin->GPC['usergroupid'])
    {
    unset($membergroups["$key"]);
    }
    }
    $user['membergroupids'] = implode(',', $membergroups);
    $casesql .= "WHEN $user[userid] THEN '$user[membergroupids]' ";
    $updateusers[] = $user['userid'];
    }

    // do a big update to get rid of this usergroup from matched members' membergroupids
    $db->query_write("
    UPDATE " . TABLE_PREFIX . "user SET
    membergroupids = CASE userid
    $casesql
    ELSE '' END
    WHERE userid IN(" . implode(',', $updateusers) . ")
    ");
    }

    define('CP_REDIRECT', 'usergroup.php?do=modify' );
    print_stop_message('delet ed_usergroup_successfully ');
    }

    // ###################### Start kill group leader #######################
    if ($_POST['do'] == 'killleader')
    {

    $db->query_write("DELETE FROM " . TABLE_PREFIX . "usergroupleader WHERE usergroupleaderid = " . $vbulletin->GPC['usergroupleaderid']);

    define('CP_REDIRECT', 'usergroup.php?do=modify' );
    print_stop_message('delet ed_usergroup_leader_succe ssfully');
    }

    // ###################### Start delete group leader #######################
    if ($_REQUEST['do'] == 'removeleader')
    {

    print_delete_confirmation ('usergroupleader', $vbulletin->GPC['usergroupleaderid'], 'usergroup', 'killleader', 'usergroup_leader');

    }

    // ###################### Start insert group leader #######################
    if ($_POST['do'] == 'insertleader')
    {
    $vbulletin->input->clean_array_gpc('p', array(
    'username' => TYPE_NOHTML
    ));

    if ($usergroup = $db->query_first("SELECT title FROM " . TABLE_PREFIX . "usergroup WHERE usergroupid = " . $vbulletin->GPC['usergroupid'] . " AND ispublicgroup = 1 AND usergroupid > 7"))
    {
    if ($user = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "user WHERE username = '" . $db->escape_string($vbullet in->GPC['username']) . "'"))
    {
    if ($preexists = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "usergroupleader WHERE usergroupid = " . $vbulletin->GPC['usergroupid'] . " AND userid = $user[userid]"))
    {
    print_stop_message('inval id_usergroup_leader_speci fied');
    }

    // update leader's member groups if necessary
    if (strpos(",$user[membergroupids],", "," . $vbulletin->GPC['usergroupid'] . ",") === false AND $user['usergroupid'] != $vbulletin->GPC['usergroupid'])
    {
    if (empty($user['membergroupids']))
    {
    $membergroups = $vbulletin->GPC['usergroupid'];
    }
    else
    {
    $membergroups = "$user[membergroupids]," . $vbulletin->GPC['usergroupid'];
    }

    $userdm =& datamanager_init('User', $vbulletin, ERRTYPE_CP);
    $userdm->set_existing($user);
    $userdm->set('membergroupids', $membergroups);
    $userdm->save();
    unset($userdm);
    }

    // insert into usergroupleader table
    /*insert query*/
    $result = $db->query_write("
    INSERT INTO " . TABLE_PREFIX . "usergroupleader
    (userid, usergroupid)
    VALUES
    ($user[userid], " . $vbulletin->GPC['usergroupid'] . ")
    ");

    define('CP_REDIRECT', 'usergroup.php?do=modify' );
    print_stop_message('saved _usergroup_leader_x_succe ssfully', $vbulletin->GPC['username']);
    }
    else
    {
    print_stop_message('inval id_user_specified');
    }
    }
    else
    {
    print_stop_message('cant_ add_usergroup_leader');
    }

    }

    // ###################### Start add group leader #######################
    if ($_REQUEST['do'] == 'addleader')
    {

    $groups = array();
    $usergroups = $db->query_read("
    SELECT usergroupid, title
    FROM " . TABLE_PREFIX . "usergroup
    WHERE usergroupid > 7 AND
    ispublicgroup = 1
    ORDER BY title
    ");
    while($usergroup = $db->fetch_array($usergroups) )
    {
    $groups["$usergroup[usergroupid]"] = $usergroup['title'];
    }

    if (!isset($groups["{$vbulletin->GPC['usergroupid']}"]))
    {
    print_stop_message('userg roup_not_public_or_invali d');
    }

    print_form_header('usergr oup', 'insertleader');
    construct_hidden_code('us ergroupid', $vbulletin->GPC['usergroupid']);
    print_table_header($vbphr ase['add_new_usergroup_leader ']);
    print_select_row($vbphras e['usergroup'], 'usergroupid', $groups, $vbulletin->GPC['usergroupid']);
    print_input_row($vbphrase['username'], 'username');
    print_submit_row($vbphras e['add'], 0);

    }

    // ###################### Start modify #######################
    if ($_REQUEST['do'] == 'modify')
    {
    // get usergroups (don't use the cache at this point...
    // this is the only place where you could rebuild the forumcache and vbulletin->usergroupcache
    // without them being present already...

    unset($vbulletin->usergroupcache);

    $usergroups = $db->query_read("SELECT * FROM " . TABLE_PREFIX . "usergroup ORDER BY title");
    while ($usergroup = $db->fetch_array($usergroups) )
    {
    $vbulletin->usergroupcache["{$usergroup['usergroupid']}"] = $usergroup;
    }
    unset($usergroup);
    $db->free_result($usergroups) ;

    // count primary users
    $groupcounts = $db->query_read("
    SELECT user.usergroupid, COUNT(user.userid) AS total
    FROM " . TABLE_PREFIX . "user AS user
    LEFT JOIN " . TABLE_PREFIX . "usergroup AS usergroup USING (usergroupid)
    WHERE usergroup.usergroupid IS NOT NULL
    GROUP BY usergroupid
    ");
    while($groupcount = $db->fetch_array($groupcounts ))
    {
    $vbulletin->usergroupcache["{$groupcount['usergroupid']}"]['count'] = $groupcount['total'];
    }
    unset($groupcount);
    $db->free_result($groupcounts );

    // count secondary users
    $groupcounts = $db->query_read("
    SELECT membergroupids, usergroupid
    FROM " . TABLE_PREFIX . "user
    WHERE membergroupids <> ''
    ");
    while ($groupcount = $db->fetch_array($groupcounts ))
    {
    $ids = fetch_membergroupids_arra y($groupcount, false);
    foreach ($ids AS $index => $value)
    {
    if ($groupcount['usergroupid'] != $value AND !empty($vbulletin->usergroupcache["$value"]))
    {
    $vbulletin->usergroupcache["$value"]['secondarycount']++;
    }
    }
    }
    unset($groupcount);
    $db->free_result($groupcounts );

    // count requests
    $groupcounts = $db->query_read("
    SELECT usergroupid, COUNT(userid) AS total
    FROM " . TABLE_PREFIX . "usergrouprequest AS usergrouprequest
    GROUP BY usergroupid
    ");
    while($groupcount = $db->fetch_array($groupcounts ))
    {
    $vbulletin->usergroupcache["{$groupcount['usergroupid']}"]['requests'] = $groupcount['total'];
    }
    unset($groupcount);
    $db->free_result($groupcounts );

    $usergroups = array();
    foreach($vbulletin->usergroupcache AS $group)
    {
    if ($group['usergroupid'] > 7)
    {
    if ($group['ispublicgroup'])
    {
    $usergroups['public']["{$group['usergroupid']}"] = $group;
    }
    else
    {
    $usergroups['custom']["{$group['usergroupid']}"] = $group;
    }
    }
    else
    {
    $usergroups['default']["{$group['usergroupid']}"] = $group;
    }
    }

    $usergroupleaders = array();
    $leaders = $db->query_read("
    SELECT usergroupleader.*, username
    FROM " . TABLE_PREFIX . "usergroupleader AS usergroupleader
    INNER JOIN " . TABLE_PREFIX . "user AS user USING(userid)
    ");
    while ($leader = $db->fetch_array($leaders))
    {
    $usergroupleaders["{$leader['usergroupid']}"][] = $leader;
    }
    unset($leader);
    $db->free_result($leaders);

    $promotions = array();
    $proms = $db->query_read("
    SELECT COUNT(*) AS count, usergroupid
    FROM " . TABLE_PREFIX . "userpromotion
    GROUP BY usergroupid
    ");
    while ($prom = $db->fetch_array($proms))
    {
    $promotions["{$prom['usergroupid']}"] = $prom['count'];
    }

    ?>
    <script type="text/javascript">
    function js_usergroup_jump(usergro upid)
    {
    task = eval("document.cpform.u" + usergroupid + ".options[document.cpform.u" + usergroupid + ".selectedIndex].value");
    switch (task)
    {
    case 'edit': window.location = "usergroup.php?<?php echo $vbulletin->session->vars['sessionurl_js']; ?>do=edit&usergroupid=" + usergroupid; break;
    case 'kill': window.location = "usergroup.php?<?php echo $vbulletin->session->vars['sessionurl_js']; ?>do=remove&usergroupid= " + usergroupid; break;
    case 'list': window.location = "user.php?<?php echo $vbulletin->session->vars['sessionurl_js']; ?>do=find&user[usergroupid]=" + usergroupid; break;
    case 'list2': window.location = "user.php?<?php echo $vbulletin->session->vars['sessionurl_js']; ?>do=find&user[membergroup][]=" + usergroupid; break;
    case 'reputation': window.location = "user.php?<?php echo $vbulletin->session->vars['sessionurl_js']; ?>do=find&display[username]=1&display[options]=1&display[posts]=1&display[usergroup]=1&display[lastvisit]=1&display[reputation]=1&orderby=reputation&dir ection=desc&limitnumber=2 5&user[usergroupid]=" + usergroupid; break;
    case 'promote': window.location = "usergroup.php?<?php echo $vbulletin->session->vars['sessionurl_js']; ?>do=modifypromotion&user groupid=" + usergroupid; break;
    case 'leader': window.location = "usergroup.php?<?php echo $vbulletin->session->vars['sessionurl_js']; ?>do=addleader&usergroupi d=" + usergroupid; break;
    case 'requests': window.location = "usergroup.php?<?php echo $vbulletin->session->vars['sessionurl_js']; ?>do=viewjoinrequests&use rgroupid=" + usergroupid; break;
    default: return false; break;
    }
    }
    </script>
    <?php

    // ###################### Start makeusergroupcode #######################
    function print_usergroup_row($user group, $options)
    {
    global $usergroupleaders, $vbphrase, $promotions, $vbulletin;

    if ($promotions["$usergroup[usergroupid]"])
    {
    $options['promote'] .= " (${promotions[$usergroup[usergroupid]]})";
    }

    $cell = array();
    $cell[] = "<b>$usergroup[title]" . iif($usergroup['canoverride'], '*') . "</b>" . iif($usergroup['ispublicgroup'], '<br /><span class="smallfont">' . $usergroup['description'] . '</span>');
    $cell[] = iif($usergroup['count'], vb_number_format($usergro up['count']), '-');
    $cell[] = iif($usergroup['secondarycount'], vb_number_format($usergro up['secondarycount']), '-');

    if ($usergroup['ispublicgroup'])
    {
    $cell[] = iif($usergroup['requests'], vb_number_format($usergro up['requests']), '0');
    }
    if ($usergroup['ispublicgroup'])
    {
    $cell_out = '<span class="smallfont">';
    if (is_array($usergroupleade rs["$usergroup[usergroupid]"]))
    {
    foreach($usergroupleaders["$usergroup[usergroupid]"] AS $usergroupleader)
    {
    $cell_out .= "<a href=\"user.php?" . $vbulletin->session->vars['sessionurl'] . "do=edit&amp;u=$usergroup leader[userid]\"><b>$usergroupleader[username]</b></a>" . construct_link_code($vbph rase['delete'], "usergroup.php?" . $vbulletin->session->vars['sessionurl'] . "do=removeleader&amp;user groupleaderid=$usergroupl eader[usergroupleaderid]") . '<br />';
    }
    }
    $cell[] = $cell_out . '</span>';
    }
    $options['edit'] .= " (id: $usergroup[usergroupid])";
    $cell[] = "\n\t<select name=\"u$usergroup[usergroupid]\" onchange=\"js_usergroup_j ump($usergroup[usergroupid]);\" class=\"bginput\">\n" . construct_select_options( $options) . "\t</select><input type=\"button\" class=\"button\" value=\"" . $vbphrase['go'] . "\" onclick=\"js_usergroup_ju mp($usergroup[usergroupid]);\" />\n\t";
    print_cells_row($cell);
    }

    print_form_header('usergr oup', 'add');

    $options_default = array(
    'edit' => $vbphrase['edit_usergroup'],
    'promote' => $vbphrase['edit_promotions'],
    'list' => $vbphrase['show_all_primary_users'],
    'list2' => $vbphrase['show_all_additional_user s'],
    'reputation' => $vbphrase['view_reputation']
    );
    $options_custom = array(
    'edit' => $vbphrase['edit_usergroup'],
    'promote' => $vbphrase['edit_promotions'],
    'kill' => $vbphrase['delete_usergroup'],
    'list' => $vbphrase['show_all_primary_users'],
    'list2' => $vbphrase['show_all_additional_user s'],
    'reputation' => $vbphrase['view_reputation']
    );
    $options_public = array(
    'edit' => $vbphrase['edit_usergroup'],
    'promote' => $vbphrase['edit_promotions'],
    'kill' => $vbphrase['delete_usergroup'],
    'list' => $vbphrase['show_all_primary_users'],
    'list2' => $vbphrase['show_all_additional_user s'],
    'reputation' => $vbphrase['view_reputation'],
    'leader' => $vbphrase['add_usergroup_leader'],
    'requests' => $vbphrase['view_join_requests']
    );

    print_table_header($vbphr ase['default_usergroups'], 5);
    print_cells_row(array($vb phrase['title'], $vbphrase['primary_users'], $vbphrase['additional_users'], $vbphrase['controls']), 1);
    foreach($usergroups['default'] AS $usergroup)
    {
    print_usergroup_row($user group, $options_default);
    }
    if (is_array($usergroups['custom']))
    {
    print_table_break();
    print_table_header($vbphr ase['custom_usergroups'], 5);
    print_cells_row(array($vb phrase['title'], $vbphrase['primary_users'], $vbphrase['additional_users'], $vbphrase['controls']), 1);
    foreach($usergroups['custom'] AS $usergroup)
    {
    print_usergroup_row($user group, $options_custom);
    }
    }
    if (is_array($usergroups['public']))
    {
    print_table_break();
    print_table_header($vbphr ase['public_joinable_custom_u sergroup'], 9);
    print_cells_row(array($vb phrase['title'], $vbphrase['primary_users'], $vbphrase['additional_users'], $vbphrase['join_requests'], $vbphrase['usergroup_leader'], $vbphrase['controls']), 1);
    foreach($usergroups['public'] AS $usergroup)
    {
    print_usergroup_row($user group, $options_public);
    }
    print_description_row('<s pan class="smallfont">' . $vbphrase['note_groups_marked_with_ a_asterisk'] . '</span>', 0, 6);
    }

    print_table_break();
    print_submit_row($vbphras e['add_new_usergroup'], 0);

    }

    // ###################### Start modify promotions #######################
    if ($_REQUEST['do'] == 'modifypromotion')
    {

    $title = $db->query_first("SELECT title FROM " . TABLE_PREFIX . "usergroup WHERE usergroupid = " . $vbulletin->GPC['usergroupid']);

    $promotions = array();
    $getpromos = $db->query_read("
    SELECT userpromotion.*, joinusergroup.title
    FROM " . TABLE_PREFIX . "userpromotion AS userpromotion
    LEFT JOIN " . TABLE_PREFIX . "usergroup AS joinusergroup ON (userpromotion.joinusergr oupid = joinusergroup.usergroupid )
    " . iif($vbulletin->GPC['usergroupid'], "WHERE userpromotion.usergroupid = " . $vbulletin->GPC['usergroupid']) . "
    ");
    while ($promotion = $db->fetch_array($getpromos ))
    {
    $promotions["$promotion[usergroupid]"][] = $promotion;
    }
    unset($promotion);
    $db->free_result($getpromos );

    print_form_header('usergr oup', 'updatepromotion');
    if (isset($vbulletin->usergroupcache["{$vbulletin->GPC['usergroupid']}"]))
    {
    construct_hidden_code('us ergroupid', $vbulletin->GPC['usergroupid']);
    }

    foreach($promotions AS $groupid => $promos)
    {
    print_table_header("$vbph rase[promotions]: <span style=\"font-weight:normal\">" . $vbulletin->usergroupcache["$groupid"]['title'] . ' ' . construct_link_code($vbph rase['add_new_promotion'], "usergroup.php?" . $vbulletin->session->vars['sessionurl'] . "do=updatepromotion&amp;u sergroupid=$groupid") . "</span>", 7);
    print_cells_row(array(
    $vbphrase['usergroup'],
    $vbphrase['promotion_type'],
    $vbphrase['promotion_strategy'],
    $vbphrase['reputation_level'],
    $vbphrase['days_registered'],
    $vbphrase['posts'],
    $vbphrase['controls']
    ), 1);

    foreach($promos AS $promotion)
    {
    $promotion['strategy'] = iif(($promotion['strategy'] > 7 AND $promotion['strategy'] < 16) OR $promotion['strategy'] == 24, $promotion['strategy'] - 8, $promotion['strategy']);
    if ($promotion['strategy'] == 16)
    {
    $type = $vbphrase['reputation'];
    }
    else if ($promotion['strategy'] == 17)
    {
    $type = $vbphrase['posts'];
    }
    else if ($promotion['strategy'] == 18)
    {
    $type = $vbphrase['join_date'];
    }
    else
    {
    $type = $vbphrase['promotion_strategy' . ($promotion['strategy'] + 1)];
    }
    print_cells_row(array(
    "<b>$promotion[title]</b>",
    iif($promotion['type']==1, $vbphrase['primary_usergroup'], $vbphrase['additional_usergroups']),
    $type,
    $promotion['reputation'],
    $promotion['date'],
    $promotion['posts'],
    construct_link_code($vbph rase['edit'], "usergroup.php?" . $vbulletin->session->vars['sessionurl'] . "userpromotionid=$promoti on[userpromotionid]&do=updatepromotion") . construct_link_code($vbph rase['delete'], "usergroup.php?" . $vbulletin->session->vars['sessionurl'] . "userpromotionid=$promoti on[userpromotionid]&do=removepromotion"),
    ));
    }
    }

    print_submit_row($vbphras e['add_new_promotion'], 0, 7);

    }

    // ###################### Start edit/insert promotions #######################
    if ($_REQUEST['do'] == 'updatepromotion')
    {
    $vbulletin->input->clean_array_gpc('r', array(
    'userpromotionid' => TYPE_INT
    ));

    $usergroups = array();
    foreach($vbulletin->usergroupcache AS $usergroup)
    {
    $usergroups["{$usergroup['usergroupid']}"] = $usergroup['title'];
    }

    print_form_header('usergr oup', 'doupdatepromotion');

    if (!$vbulletin->GPC['userpromotionid'])
    {
    $promotion = array(
    'reputation' => 1000,
    'date' => 30,
    'posts' => 100,
    'type' => 1,
    'reputationtype' => 0,
    'strategy' => 16
    );

    if ($vbulletin->GPC['usergroupid'])
    {
    $promotion['usergroupid'] = $vbulletin->GPC['usergroupid'];
    }

    print_table_header($vbphr ase['add_new_promotion']);
    print_select_row($vbphras e['usergroup'], 'promotion[usergroupid]', $usergroups, $promotion['usergroupid']);

    }
    else
    {
    $promotion = $db->query_first("
    SELECT userpromotion.*, usergroup.title
    FROM " . TABLE_PREFIX . "userpromotion AS userpromotion,
    " . TABLE_PREFIX . "usergroup AS usergroup
    WHERE userpromotionid = " . $vbulletin->GPC['userpromotionid'] . " AND
    userpromotion.usergroupid = usergroup.usergroupid
    ");

    if (($promotion['strategy'] > 7 AND $promotion['strategy'] < 16) OR $promotion['strategy'] == 24)
    {
    $promotion['reputationtype'] = 1;
    $promotion['strategy'] -= 8;
    }
    else
    {
    $promotion['reputationtype'] = 0;
    }
    construct_hidden_code('us erpromotionid', $vbulletin->GPC['userpromotionid']);
    construct_hidden_code('us ergroupid', $promotion['usergroupid']);
    print_table_header(constr uct_phrase($vbphrase['x_y_id_z'], $vbphrase['promotion'], $promotion['title'], $promotion['userpromotionid']));
    }

    $promotionarray = array(
    17=> $vbphrase['posts'],
    18=> $vbphrase['join_date'],
    16=> $vbphrase['reputation'],
    0 => $vbphrase['promotion_strategy1'],
    1 => $vbphrase['promotion_strategy2'],
    2 => $vbphrase['promotion_strategy3'],
    3 => $vbphrase['promotion_strategy4'],
    4 => $vbphrase['promotion_strategy5'],
    5 => $vbphrase['promotion_strategy6'],
    6 => $vbphrase['promotion_strategy7'],
    7 => $vbphrase['promotion_strategy8'],
    );

    print_select_row($vbphras e['reputation_comparison_ty pe'], 'promotion[reputationtype]', array($vbphrase['greater_or_equal_to'], $vbphrase['less_than']), $promotion['reputationtype']);
    print_input_row($vbphrase['reputation_level'], 'promotion[reputation]', $promotion['reputation']);
    print_input_row($vbphrase['days_registered'], 'promotion[date]', $promotion['date']);
    print_input_row($vbphrase['posts'], 'promotion[posts]', $promotion['posts']);
    print_select_row($vbphras e['promotion_strategy'] . " <dfn> $vbphrase[promotion_strategy_descri ption]</dfn>", 'promotion[strategy]', $promotionarray, $promotion['strategy']);
    print_select_row($vbphras e['promotion_type'] . ' <dfn>' . $vbphrase['promotion_type_descripti on_primary_additional'] . '</dfn>', 'promotion[type=mwadah]', array(1 => $vbphrase['primary_usergroup'], 2 => $vbphrase['additional_usergroups']), $promotion['type']);
    print_chooser_row($vbphra se['move_user_to_usergroup'] . " <dfn>$vbphrase[move_user_to_usergroup_de scription]</dfn>", 'promotion[joinusergroupid]', 'usergroup', $promotion['joinusergroupid'], '&nbsp;');

    print_submit_row(iif(empt y($vbulletin->GPC['userpromotionid']), $vbphrase['save'], '_default_'));
    }

    // ###################### Start do edit/insert promotions #######################
    if ($_POST['do'] == 'doupdatepromotion')
    {

    $vbulletin->input->clean_array_gpc('p', array(
    'promotion' => TYPE_ARRAY,
    'userpromotionid' => TYPE_INT,
    ));

    if ($vbulletin->GPC['promotion']['joinusergroupid'] == -1)
    {
    print_stop_message('inval id_usergroup_specified');
    }

    if ($vbulletin->GPC['promotion']['reputationtype'] AND $vbulletin->GPC['promotion']['strategy'] <= 16)
    {
    $vbulletin->GPC['promotion']['strategy'] += 8;
    }
    unset($vbulletin->GPC['promotion']['reputationtype']);

    if (!empty($vbulletin->GPC['userpromotionid']))
    { // update
    if ($vbulletin->GPC['usergroupid'] == $vbulletin->GPC['promotion']['joinusergroupid'])
    {
    print_stop_message('promo tion_join_same_group');
    }
    $db->query_write(fetch_query_ sql($vbulletin->GPC['promotion'], 'userpromotion', "WHERE userpromotionid=" . $vbulletin->GPC['userpromotionid']));
    }
    else
    { // insert
    $vbulletin->GPC['usergroupid'] = $vbulletin->GPC['promotion']['usergroupid'];
    if ($vbulletin->GPC['usergroupid'] == $vbulletin->GPC['promotion']['joinusergroupid'])
    {
    print_stop_message('promo tion_join_same_group');
    }
    /*insert query*/
    $db->query_write(fetch_query_ sql($vbulletin->GPC['promotion'], 'userpromotion'));
    }

    // $title = $db->query_first("SELECT title FROM " . TABLE_PREFIX . "usergroup WHERE usergroupid = " . $vbulletin->GPC['usergroupid']);
    // $message = str_replace('{title}', $title['title'], $message);

    define('CP_REDIRECT', "usergroup.php?do=modifyp romotion&usergroupid=" . $vbulletin->GPC['usergroupid']);
    print_stop_message('saved _promotion_successfully') ;
    }

    // ###################### Start Remove #######################

    if ($_REQUEST['do'] == 'removepromotion')
    {
    $vbulletin->input->clean_array_gpc('r', array(
    'userpromotionid' => TYPE_INT,
    ));
    print_delete_confirmation ('userpromotion', $vbulletin->GPC['userpromotionid'], 'usergroup', 'killpromotion', 'promotion_usergroup', 0, '');

    }

    // ###################### Start Kill #######################
    if ($_POST['do'] == 'killpromotion')
    {
    $vbulletin->input->clean_array_gpc('p', array(
    'userpromotionid' => TYPE_INT,
    ));
    $db->query_write("DELETE FROM " . TABLE_PREFIX . "userpromotion WHERE userpromotionid = " . $vbulletin->GPC['userpromotionid']);

    define('CP_REDIRECT', 'usergroup.php?do=modifyp romotion');
    print_stop_message('delet ed_promotion_successfully ');
    }

    // ######################### ######################### ######################### ##
    // process usergroup join requests
    if ($_POST['do'] == 'processjoinrequests')
    {

    $vbulletin->input->clean_array_gpc('p', array(
    'request' => TYPE_ARRAY_INT
    ));

    // check we have some results to process
    if (empty($vbulletin->GPC['request']))
    {
    print_stop_message('no_ma tches_found');
    }

    // check that we are working with a valid usergroup
    if (!is_array($vbulletin->usergroupcache["{$vbulletin->GPC['usergroupid']}"]))
    {
    print_stop_message('inval id_usergroup_specified');
    }
    else
    {
    $usergroupname = htmlspecialchars_uni($vbu lletin->usergroupcache["{$vbulletin->GPC['usergroupid']}"]['title']);
    }

    $auth = array();

    // sort the requests according to the action specified
    foreach($vbulletin->GPC['request'] AS $requestid => $action)
    {
    switch($action)
    {
    case -1: // this request will be ignored
    unset($vbulletin->GPC['request']["$requestid"]);
    break;

    case 1: // this request will be authorized
    $auth[] = $requestid;
    break;

    case 0: // this request will be denied
    // do nothing - this request will be zapped at the end of this segment
    break;
    }
    }

    // if we have any accepted requests, make sure they are valid
    if (!empty($auth))
    {
    $users = $db->query_read("
    SELECT req.userid, user.username, user.usergroupid, user.membergroupids, req.usergrouprequestid
    FROM " . TABLE_PREFIX . "usergrouprequest AS req
    INNER JOIN " . TABLE_PREFIX . "user AS user USING(userid)
    WHERE usergrouprequestid IN (" . implode(', ', $auth) . ")
    ORDER BY user.username
    ");
    $auth = array();
    echo "<p><b>" . $vbphrase['processing_join_requests '] . "</b></p><ul>\n";
    while ($user = $db->fetch_array($users))
    {
    if (in_array($vbulletin->GPC['usergroupid'], fetch_membergroupids_arra y($user)))
    {
    echo "\t<li>" . construct_phrase($vbphras e['x_is_already_a_member_of _the_usergroup_y'], "<b>$user[username]</b>", "<i>$usergroupname</i>") . "</li>\n";
    }
    else
    {
    echo "\t<li>" . construct_phrase($vbphras e['making_x_a_member_of_the _usergroup_y'], "<b>$user[username]</b>", "<i>$usergroupname</i>") . "</li>\n";
    $auth[] = $user['userid'];
    }
    }
    echo "</ul><p><b>$vbphrase[done]</b></p>\n";

    // check that we STILL have some valid requests
    if (!empty($auth))
    {
    $updateQuery = "
    UPDATE " . TABLE_PREFIX . "user SET
    membergroupids = IF(membergroupids = '', " . $vbulletin->GPC['usergroupid'] . ", CONCAT(membergroupids, '," . $vbulletin->GPC['usergroupid'] . "'))
    WHERE userid IN (" . implode(', ', $auth) . ")
    ";
    $db->query_write($updateQuery );
    }
    }

    // delete processed join requests
    if (!empty($vbulletin->GPC['request']))
    {
    $deleteQuery = "DELETE FROM " . TABLE_PREFIX . "usergrouprequest WHERE usergrouprequestid IN (" . implode(', ', array_keys($vbulletin->GPC['request'])) . ")";
    $db->query_write($deleteQuery );
    }

    // and finally jump back to the join requests screen
    $_REQUEST['do'] = 'viewjoinrequests';
    }

    // ######################### ######################### ######################### ##
    // show usergroup join requests
    if ($_REQUEST['do'] == 'viewjoinrequests')
    {

    // first query groups that have join requests
    $getusergroups = $db->query_read("
    SELECT req.usergroupid, COUNT(req.usergroupreques tid) AS requests,
    IF(usergroup.usergroupid IS NULL, 0, 1) AS validgroup
    FROM " . TABLE_PREFIX . "usergrouprequest AS req
    LEFT JOIN " . TABLE_PREFIX . "usergroup AS usergroup ON (usergroup.usergroupid = req.usergroupid)
    LEFT JOIN " . TABLE_PREFIX . "user AS user ON (user.userid = req.userid)
    WHERE user.userid IS NOT NULL
    GROUP BY req.usergroupid
    ");
    if ($db->num_rows($getusergroup s) == 0)
    {
    // there are no join requests
    print_stop_message('nothi ng_to_do');
    }

    // if we got this far we know that we have at least one group with some requests in it
    $usergroups = array();
    $badgroups = array();

    while($getusergroup = $db->fetch_array($getusergrou ps))
    {
    $ugid =& $getusergroup['usergroupid'];

    if (isset($vbulletin->usergroupcache["$ugid"]))
    {
    $vbulletin->usergroupcache["$ugid"]['joinrequests'] = $getusergroup['requests'];
    }
    else
    {
    $badgroups[] = $getusergroup['usergroupid'];
    }
    }
    unset($getusergroup);
    $db->free_result($getusergrou ps);

    // if there are any invalid requests, zap them now
    if (!empty($badgroups))
    {
    $badgroups = implode(', ', $badgroups);
    DEVDEBUG("Deleting requests from the following invalid usergroups: $badgroups");
    $db->query_write("DELETE FROM " . TABLE_PREFIX . "usergrouprequest WHERE usergroupid IN ($badgroups)");
    }

    // create array to hold options for the menu
    $groupsmenu = array();

    foreach ($vbulletin->usergroupcache AS $id => $usergroup)
    {
    if ($usergroup['ispublicgroup'])
    {
    $groupsmenu["$id"] = htmlspecialchars_uni($use rgroup['title']) . " ($vbphrase[join_requests]: " . vb_number_format($usergro up['joinrequests']) . ")";
    }
    }

    print_form_header('usergr oup', 'viewjoinrequests', 0, 1, 'chooser');
    print_label_row(
    $vbphrase['usergroup'],
    '<select name="usergroupid" onchange="this.form.submi t();" class="bginput">' . construct_select_options( $groupsmenu, $vbulletin->GPC['usergroupid']) . '</select><input type="submit" class="button" value="' . $vbphrase['go'] . '" />',
    'thead'
    );
    print_table_footer();
    unset($groupsmenu);

    // now if we are being asked to display a particular usergroup, do so.
    if ($vbulletin->GPC['usergroupid'])
    {
    // check this is a valid usergroup
    if (!is_array($vbulletin->usergroupcache["{$vbulletin->GPC['usergroupid']}"]))
    {
    print_stop_message('inval id_usergroup_specified');
    }

    // check that this usergroup has some join requests
    if ($vbulletin->usergroupcache["{$vbulletin->GPC['usergroupid']}"]['joinrequests'])
    {

    // everything seems okay, so make a total record for this usergroup
    $usergroup =& $vbulletin->usergroupcache["{$vbulletin->GPC['usergroupid']}"];

    // query the usergroup leaders of this usergroup
    $leaders = array();
    $getleaders = $db->query_read("
    SELECT usergroupleader.userid, user.username
    FROM " . TABLE_PREFIX . "usergroupleader AS usergroupleader
    INNER JOIN " . TABLE_PREFIX . "user AS user USING(userid)
    WHERE usergroupleader.usergroup id = " . $vbulletin->GPC['usergroupid'] . "
    ");
    while ($getleader = $db->fetch_array($getleaders) )
    {
    $leaders[] = "<a href=\"user.php?" . $vbulletin->session->vars['sessionurl'] . "do=edit&amp;u=$getle ader[userid]\">$getleader[username]</a>";
    }
    unset($getleader);
    $db->free_result($getleaders) ;

    // query the requests for this usergroup
    $requests = $db->query_read("
    SELECT req.*, user.username
    FROM " . TABLE_PREFIX . "usergrouprequest AS req
    INNER JOIN " . TABLE_PREFIX . "user AS user USING(userid)
    WHERE req.usergroupid = " . $vbulletin->GPC['usergroupid'] . "
    ORDER BY user.username
    ");

    print_form_header('usergr oup', 'processjoinrequests');
    construct_hidden_code('us ergroupid', $vbulletin->GPC['usergroupid']);
    print_table_header("$user group[title] - ($vbphrase[join_requests]: $usergroup[joinrequests])", 6);
    if (!empty($leaders))
    {
    print_description_row("<s pan style=\"font-weight:normal\">(" . $vbphrase['usergroup_leader'] . ': ' . implode(', ', $leaders) . ')</span>', 0, 6, 'thead');
    }
    print_cells_row(array
    (
    $vbphrase['username'],
    $vbphrase['reason'],
    '<span style="white-space:nowrap">' . $vbphrase['date'] . '</span>',
    '<input type="button" value="' . $vbphrase['accept'] . '" onclick="js_check_all_opt ion(this.form, 1);" class="button" title="' . $vbphrase['check_all'] . '" />',
    '<input type="button" value=" ' . $vbphrase['deny'] . ' " onclick="js_check_all_opt ion(this.form, 0);" class="button" title="' . $vbphrase['check_all'] . '" />',
    '<input type="button" value="' . $vbphrase['ignore'] . '" onclick="js_check_all_opt ion(this.form, -1);" class="button" title="' . $vbphrase['check_all'] . '" />'
    ), 1);

    $i = 0;

    while ($request = $db->fetch_array($requests) )
    {
    if ($i > 0 AND $i % 10 == 0)
    {
    print_description_row('<d iv align="center"><input type="submit" class="button" value="' . $vbphrase['process'] . '" accesskey="s" tabindex="1" /></div>', 0, 6, 'thead');
    }
    $i++;
    $cell = array
    (
    "<a href=\"user.php?" . $vbulletin->session->vars['sessionurl'] . "do=edit&amp;u=$reque st[userid]\"><b>$request[username]</b></a>",
    $request['reason'],
    '<span class="smallfont">' . vbdate($vbulletin->options['dateformat'], $request['dateline']) . '<br />' . vbdate($vbulletin->options['timeformat'], $request['dateline']) . '</span>',
    '<label for="a' . $request['usergrouprequestid'] . '" class="smallfont">' . $vbphrase['accept'] . '<input type="radio" name="request[' . $request['usergrouprequestid'] . ']" value="1" id="a' . $request['usergrouprequestid'] . '" tabindex="1" /></label>',
    '<label for="d' . $request['usergrouprequestid'] . '" class="smallfont">' . $vbphrase['deny'] . '<input type="radio" name="request[' . $request['usergrouprequestid'] . ']" value="0" id="d' . $request['usergrouprequestid'] . '" tabindex="1" /></label>',
    '<label for="i' . $request['usergrouprequestid'] . '" class="smallfont">' . $vbphrase['ignore'] . '<input type="radio" name="request[' . $request['usergrouprequestid'] . ']" value="-1" id="i' . $request['usergrouprequestid'] . '" tabindex="1" checked="checked" /></label>'
    );
    print_cells_row($cell, 0, '', -5);
    }
    unset($request);
    $db->free_result($requests) ;

    print_submit_row($vbphras e['process'], $vbphrase['reset'], 6);

    }
    else
    {
    print_stop_message('no_jo in_requests_matched_your_ query');
    }

    }
    }

    print_cp_footer();

    /*======================== ========================= =====================*\
    || ######################### ######################### ##################
    || # Downloaded: $sm_time, $sm_date
    || # CVS: $RCSfile: usergroup.php,v $ - $Revision: 1.180.2.1 $
    || ######################### ######################### ##################
    \*======================= ========================= ======================*/
    ?>

     
  4. #4
    المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute الصورة الرمزية المودة
    تاريخ التسجيل
    17 / 08 / 2004
    العمر
    32
    المشاركات
    20,806
    معدل تقييم المستوى
    26157

    افتراضي رد: الفزعة يالربع " كيف عن طريق cPanel اغير الادمن "

    انت ويش وداك للملفات المطلوب التعديل في قاعدة البيانات ... في جدول user الموجود في قاعدة المنتدى ... تحياتي .

     

 
+ الرد على الموضوع

معلومات الموضوع

الأعضاء الذين يشاهدون هذا الموضوع

الذين يشاهدون الموضوع الآن: 1 (0 من الأعضاء و 1 زائر)

     

مواقع النشر (المفضلة)

مواقع النشر (المفضلة)

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك