Zeile 524 | Zeile 524 |
---|
"signature" => $mybb->input['signature'], "dateformat" => $mybb->get_input('dateformat', MyBB::INPUT_INT), "timeformat" => $mybb->get_input('timeformat', MyBB::INPUT_INT),
|
"signature" => $mybb->input['signature'], "dateformat" => $mybb->get_input('dateformat', MyBB::INPUT_INT), "timeformat" => $mybb->get_input('timeformat', MyBB::INPUT_INT),
|
"language" => $mybb->input['language'],
| |
"usernotes" => $mybb->input['usernotes'], "away" => array( "away" => $mybb->input['away'],
| "usernotes" => $mybb->input['usernotes'], "away" => array( "away" => $mybb->input['away'],
|
Zeile 646 | Zeile 645 |
---|
$maxheight = (int)$maxwidth;
$extra_user_updates = array(
|
$maxheight = (int)$maxwidth;
$extra_user_updates = array(
|
"avatar" => "http://www.gravatar.com/avatar/{$email}{$s}",
| "avatar" => "https://www.gravatar.com/avatar/{$email}{$s}",
|
"avatardimensions" => "{$maxheight}|{$maxheight}", "avatartype" => "gravatar" );
| "avatardimensions" => "{$maxheight}|{$maxheight}", "avatartype" => "gravatar" );
|
Zeile 830 | Zeile 829 |
---|
}
$plugins->run_hooks("admin_user_users_edit_commit");
|
}
$plugins->run_hooks("admin_user_users_edit_commit");
|
| if($user['usergroup'] == 5 && $mybb->input['usergroup'] != 5) { $cache->update_awaitingactivation(); }
|
// Log admin action log_admin_action($user['uid'], $mybb->input['username']);
| // Log admin action log_admin_action($user['uid'], $mybb->input['username']);
|
Zeile 916 | Zeile 920 |
---|
$page->add_breadcrumb_item($lang->edit_user.": ".htmlspecialchars_uni($user['username']));
$page->extra_header .= <<<EOF
|
$page->add_breadcrumb_item($lang->edit_user.": ".htmlspecialchars_uni($user['username']));
$page->extra_header .= <<<EOF
|
|
|
<link rel="stylesheet" href="../jscripts/sceditor/editor_themes/mybb.css" type="text/css" media="all" /> <script type="text/javascript" src="../jscripts/sceditor/jquery.sceditor.bbcode.min.js?ver=1805"></script> <script type="text/javascript" src="../jscripts/bbcodes_sceditor.js?ver=1804"></script>
| <link rel="stylesheet" href="../jscripts/sceditor/editor_themes/mybb.css" type="text/css" media="all" /> <script type="text/javascript" src="../jscripts/sceditor/jquery.sceditor.bbcode.min.js?ver=1805"></script> <script type="text/javascript" src="../jscripts/bbcodes_sceditor.js?ver=1804"></script>
|
Zeile 927 | Zeile 931 |
---|
$sub_tabs['edit_user'] = array( 'title' => $lang->edit_user, 'description' => $lang->edit_user_desc
|
$sub_tabs['edit_user'] = array( 'title' => $lang->edit_user, 'description' => $lang->edit_user_desc
|
);
| );
|
$form = new Form("index.php?module=user-users&action=edit&uid={$user['uid']}", "post", "", 1);
$page->output_nav_tabs($sub_tabs, 'edit_user');
|
$form = new Form("index.php?module=user-users&action=edit&uid={$user['uid']}", "post", "", 1);
$page->output_nav_tabs($sub_tabs, 'edit_user');
|
|
|
// If we have any error messages, show them if($errors) { $page->output_inline_error($errors);
|
// If we have any error messages, show them if($errors) { $page->output_inline_error($errors);
|
}
| }
|
// Is this user a COPPA user? We show a warning & activate link if($user['coppauser'])
| // Is this user a COPPA user? We show a warning & activate link if($user['coppauser'])
|
Zeile 958 | Zeile 962 |
---|
// // OVERVIEW
|
// // OVERVIEW
|
//
| //
|
echo "<div id=\"tab_overview\">\n"; $table = new Table; $table->construct_header($lang->avatar, array('class' => 'align_center'));
| echo "<div id=\"tab_overview\">\n"; $table = new Table; $table->construct_header($lang->avatar, array('class' => 'align_center'));
|
Zeile 1086 | Zeile 1090 |
---|
$table->construct_row(); $table->construct_cell("<strong>{$lang->posts_per_day}:</strong> {$posts_per_day}"); $table->construct_cell("<strong>{$lang->reputation}:</strong> {$reputation}");
|
$table->construct_row(); $table->construct_cell("<strong>{$lang->posts_per_day}:</strong> {$posts_per_day}"); $table->construct_cell("<strong>{$lang->reputation}:</strong> {$reputation}");
|
$table->construct_row();
| $table->construct_row();
|
$table->construct_cell("<strong>{$lang->percent_of_total_posts}:</strong> {$percent_posts}"); $table->construct_cell("<strong>{$lang->warning_level}:</strong> {$warning_level}"); $table->construct_row();
| $table->construct_cell("<strong>{$lang->percent_of_total_posts}:</strong> {$percent_posts}"); $table->construct_cell("<strong>{$lang->warning_level}:</strong> {$warning_level}"); $table->construct_row();
|
Zeile 1172 | Zeile 1176 |
---|
$birthday_row = $form->generate_select_box('bday1', $birthday_days, $mybb->input['bday'][0], array('id' => 'bday_day')); $birthday_row .= ' '.$form->generate_select_box('bday2', $birthday_months, $mybb->input['bday'][1], array('id' => 'bday_month')); $birthday_row .= ' '.$form->generate_numeric_field('bday3', $mybb->input['bday'][2], array('id' => 'bday_year', 'style' => 'width: 4em;', 'min' => 0));
|
$birthday_row = $form->generate_select_box('bday1', $birthday_days, $mybb->input['bday'][0], array('id' => 'bday_day')); $birthday_row .= ' '.$form->generate_select_box('bday2', $birthday_months, $mybb->input['bday'][1], array('id' => 'bday_month')); $birthday_row .= ' '.$form->generate_numeric_field('bday3', $mybb->input['bday'][2], array('id' => 'bday_year', 'style' => 'width: 4em;', 'min' => 0));
|
|
|
$form_container->output_row($lang->birthday, "", $birthday_row, 'birthday');
// Output custom profile fields - optional
| $form_container->output_row($lang->birthday, "", $birthday_row, 'birthday');
// Output custom profile fields - optional
|
Zeile 1258 | Zeile 1262 |
---|
$tpp_options = array($lang->use_default); if($mybb->settings['usertppoptions'])
|
$tpp_options = array($lang->use_default); if($mybb->settings['usertppoptions'])
|
{
| {
|
$explodedtpp = explode(",", $mybb->settings['usertppoptions']); if(is_array($explodedtpp)) { foreach($explodedtpp as $tpp)
|
$explodedtpp = explode(",", $mybb->settings['usertppoptions']); if(is_array($explodedtpp)) { foreach($explodedtpp as $tpp)
|
{
| {
|
if($tpp <= 0) continue; $tpp_options[$tpp] = $tpp;
|
if($tpp <= 0) continue; $tpp_options[$tpp] = $tpp;
|
} } }
| } } }
|
$thread_age_options = array( 0 => $lang->use_default,
| $thread_age_options = array( 0 => $lang->use_default,
|
Zeile 1299 | Zeile 1303 |
---|
{ if($ppp <= 0) continue; $ppp_options[$ppp] = $ppp;
|
{ if($ppp <= 0) continue; $ppp_options[$ppp] = $ppp;
|
} } }
| } } }
|
$thread_options = array( $form->generate_check_box("classicpostbit", 1, $lang->show_classic_postbit, array("checked" => $mybb->input['classicpostbit'])),
| $thread_options = array( $form->generate_check_box("classicpostbit", 1, $lang->show_classic_postbit, array("checked" => $mybb->input['classicpostbit'])),
|
Zeile 1474 | Zeile 1478 |
---|
$avatar_url = ''; if($user['avatartype'] == "upload" || stristr($user['avatar'], $mybb->settings['avataruploadpath']))
|
$avatar_url = ''; if($user['avatartype'] == "upload" || stristr($user['avatar'], $mybb->settings['avataruploadpath']))
|
{
| {
|
$current_avatar_msg = "<br /><strong>{$lang->user_current_using_uploaded_avatar}</strong>"; } elseif($user['avatartype'] == "remote" || my_strpos(my_strtolower($user['avatar']), "http://") !== false)
| $current_avatar_msg = "<br /><strong>{$lang->user_current_using_uploaded_avatar}</strong>"; } elseif($user['avatartype'] == "remote" || my_strpos(my_strtolower($user['avatar']), "http://") !== false)
|
Zeile 1501 | Zeile 1505 |
---|
}
if($user['avatar'])
|
}
if($user['avatar'])
|
{
| {
|
$remove_avatar = "<br /><br />".$form->generate_check_box("remove_avatar", 1, "<strong>{$lang->remove_avatar}</strong>"); }
$table->construct_cell($lang->avatar_desc."{$remove_avatar}<br /><small>{$max_size}</small>"); $table->construct_row();
|
$remove_avatar = "<br /><br />".$form->generate_check_box("remove_avatar", 1, "<strong>{$lang->remove_avatar}</strong>"); }
$table->construct_cell($lang->avatar_desc."{$remove_avatar}<br /><small>{$max_size}</small>"); $table->construct_row();
|
|
|
$table->output($lang->avatar.": {$user['username']}");
// Custom avatar if($mybb->settings['avatarresizing'] == "auto")
|
$table->output($lang->avatar.": {$user['username']}");
// Custom avatar if($mybb->settings['avatarresizing'] == "auto")
|
{
| {
|
$auto_resize = $lang->avatar_auto_resize;
|
$auto_resize = $lang->avatar_auto_resize;
|
}
| }
|
else if($mybb->settings['avatarresizing'] == "user") { $auto_resize = "<input type=\"checkbox\" name=\"auto_resize\" value=\"1\" checked=\"checked\" id=\"auto_resize\" /> <label for=\"auto_resize\">{$lang->attempt_to_auto_resize}</label></span>";
|
else if($mybb->settings['avatarresizing'] == "user") { $auto_resize = "<input type=\"checkbox\" name=\"auto_resize\" value=\"1\" checked=\"checked\" id=\"auto_resize\" /> <label for=\"auto_resize\">{$lang->attempt_to_auto_resize}</label></span>";
|
}
| }
|
$form_container = new FormContainer($lang->specify_custom_avatar); $form_container->output_row($lang->upload_avatar, $auto_resize, $form->generate_file_upload_box('avatar_upload', array('id' => 'avatar_upload')), 'avatar_upload'); $form_container->output_row($lang->or_specify_avatar_url, "", $form->generate_text_box('avatar_url', $avatar_url, array('id' => 'avatar_url')), 'avatar_url');
| $form_container = new FormContainer($lang->specify_custom_avatar); $form_container->output_row($lang->upload_avatar, $auto_resize, $form->generate_file_upload_box('avatar_upload', array('id' => 'avatar_upload')), 'avatar_upload'); $form_container->output_row($lang->or_specify_avatar_url, "", $form->generate_text_box('avatar_url', $avatar_url, array('id' => 'avatar_url')), 'avatar_url');
|
Zeile 1535 | Zeile 1539 |
---|
"months" => $lang->expire_months, "never" => $lang->expire_permanent );
|
"months" => $lang->expire_months, "never" => $lang->expire_permanent );
|
|
|
echo "<div id=\"tab_modoptions\">\n"; $form_container = new FormContainer($lang->mod_options.": {$user['username']}"); $form_container->output_row($lang->user_notes, '', $form->generate_text_area('usernotes', $mybb->input['usernotes'], array('id' => 'usernotes')), 'usernotes');
| echo "<div id=\"tab_modoptions\">\n"; $form_container = new FormContainer($lang->mod_options.": {$user['username']}"); $form_container->output_row($lang->user_notes, '', $form->generate_text_area('usernotes', $mybb->input['usernotes'], array('id' => 'usernotes')), 'usernotes');
|
Zeile 1553 | Zeile 1557 |
---|
{ $remaining = $user['moderationtime']-TIME_NOW; $expired = nice_time($remaining, array('seconds' => false));
|
{ $remaining = $user['moderationtime']-TIME_NOW; $expired = nice_time($remaining, array('seconds' => false));
|
$color = 'inherit'; if($remaining < 3600) { $color = 'red'; } elseif($remaining < 86400) { $color = 'maroon';
| $color = 'inherit'; if($remaining < 3600) { $color = 'red'; } elseif($remaining < 86400) { $color = 'maroon';
|
} elseif($remaining < 604800) { $color = 'green';
|
} elseif($remaining < 604800) { $color = 'green';
|
}
| }
|
$existing_info = $lang->sprintf($lang->moderate_length, $expired, $color); } else
| $existing_info = $lang->sprintf($lang->moderate_length, $expired, $color); } else
|
Zeile 1583 | Zeile 1587 |
---|
// Suspend posts // Generate check box $suspost_options = $form->generate_select_box('suspost_period', $periods, $mybb->input['suspost_period'], array('id' => 'suspost_period'));
|
// Suspend posts // Generate check box $suspost_options = $form->generate_select_box('suspost_period', $periods, $mybb->input['suspost_period'], array('id' => 'suspost_period'));
|
|
|
// Do we have any existing suspensions here? if($user['suspendposting'] || ($mybb->input['suspendposting'] && !empty($errors))) { $mybb->input['suspendposting'] = 1;
|
// Do we have any existing suspensions here? if($user['suspendposting'] || ($mybb->input['suspendposting'] && !empty($errors))) { $mybb->input['suspendposting'] = 1;
|
|
|
if($user['suspensiontime'] == 0 || $mybb->input['suspost_period'] == "never") { $existing_info = $lang->suspended_perm;
| if($user['suspensiontime'] == 0 || $mybb->input['suspost_period'] == "never") { $existing_info = $lang->suspended_perm;
|
Zeile 1604 | Zeile 1608 |
---|
$color = 'red'; } elseif($remaining < 86400)
|
$color = 'red'; } elseif($remaining < 86400)
|
{
| {
|
$color = 'maroon'; } elseif($remaining < 604800)
| $color = 'maroon'; } elseif($remaining < 604800)
|
Zeile 1820 | Zeile 1824 |
---|
$table->construct_header($lang->ip_address); $table->construct_header($lang->controls, array('width' => 200, 'class' => "align_center"));
|
$table->construct_header($lang->ip_address); $table->construct_header($lang->controls, array('width' => 200, 'class' => "align_center"));
|
|
|
if(empty($user['lastip'])) { $user['lastip'] = $lang->unknown;
|
if(empty($user['lastip'])) { $user['lastip'] = $lang->unknown;
|
$controls = ''; } else
| $controls = ''; } else
|
{ $user['lastip'] = my_inet_ntop($db->unescape_binary($user['lastip'])); $popup = new PopupMenu("user_last", $lang->options);
| { $user['lastip'] = my_inet_ntop($db->unescape_binary($user['lastip'])); $popup = new PopupMenu("user_last", $lang->options);
|
Zeile 1842 | Zeile 1846 |
---|
$table->construct_row();
if(empty($user['regip']))
|
$table->construct_row();
if(empty($user['regip']))
|
{
| {
|
$user['regip'] = $lang->unknown; $controls = ''; }
| $user['regip'] = $lang->unknown; $controls = ''; }
|
Zeile 1864 | Zeile 1868 |
---|
$query = $db->simple_select("posts", "DISTINCT ipaddress", "uid='{$mybb->input['uid']}'"); while($ip = $db->fetch_array($query))
|
$query = $db->simple_select("posts", "DISTINCT ipaddress", "uid='{$mybb->input['uid']}'"); while($ip = $db->fetch_array($query))
|
{
| {
|
++$counter; $ip['ipaddress'] = my_inet_ntop($db->unescape_binary($ip['ipaddress'])); $popup = new PopupMenu("id_{$counter}", $lang->options);
| ++$counter; $ip['ipaddress'] = my_inet_ntop($db->unescape_binary($ip['ipaddress'])); $popup = new PopupMenu("id_{$counter}", $lang->options);
|
Zeile 2144 | Zeile 2148 |
---|
<!-- $("#source_username").select2({ placeholder: "'.$lang->search_for_a_user.'",
|
<!-- $("#source_username").select2({ placeholder: "'.$lang->search_for_a_user.'",
|
minimumInputLength: 3, maximumSelectionSize: 3,
| minimumInputLength: 2,
|
multiple: false, ajax: { // instead of writing the function to execute the request we use Select2\'s convenient helper url: "../xmlhttp.php?action=get_users",
| multiple: false, ajax: { // instead of writing the function to execute the request we use Select2\'s convenient helper url: "../xmlhttp.php?action=get_users",
|
Zeile 2174 | Zeile 2177 |
---|
}); $("#destination_username").select2({ placeholder: "'.$lang->search_for_a_user.'",
|
}); $("#destination_username").select2({ placeholder: "'.$lang->search_for_a_user.'",
|
minimumInputLength: 3, maximumSelectionSize: 3,
| minimumInputLength: 2,
|
multiple: false, ajax: { // instead of writing the function to execute the request we use Select2\'s convenient helper url: "../xmlhttp.php?action=get_users",
| multiple: false, ajax: { // instead of writing the function to execute the request we use Select2\'s convenient helper url: "../xmlhttp.php?action=get_users",
|
Zeile 2383 | Zeile 2385 |
---|
} }
|
} }
|
// If there isn't anything to select, then output an error if(!is_array($selected))
| // Verify incoming POST request if(!verify_post_check($mybb->input['my_post_key']))
|
{
|
{
|
if($mybb->input['inline_action'] != "multilift" && $mybb->request_method != "post") { $errors[] = $lang->error_inline_no_users_selected; }
| flash_message($lang->invalid_post_verify_key2, 'error'); admin_redirect("index.php?module=user-user"); } $sub_tabs['manage_users'] = array( "title" => $lang->manage_users, "link" => "./", "description" => $lang->manage_users_desc ); $page->add_breadcrumb_item($lang->manage_users);
if(!is_array($selected)) { // Not selected any users, show error flash_message($lang->error_inline_no_users_selected, 'error'); admin_redirect("index.php?module=user-users".$vid_url);
|
}
|
}
|
if($errors)
| switch($mybb->input['inline_action'])
|
{
|
{
|
// Don't show views, but show the user list if there's errors $inline = true; $mybb->input['action'] = ''; } else { // Let's continue! // Verify incoming POST request if(!verify_post_check($mybb->input['my_post_key'])) { flash_message($lang->invalid_post_verify_key2, 'error'); admin_redirect("index.php?module=user-user"); } $sub_tabs['manage_users'] = array( "title" => $lang->manage_users, "link" => "./", "description" => $lang->manage_users_desc ); $page->add_breadcrumb_item($lang->manage_users);
if(!is_array($selected)) { // Not selected any users, show error flash_message($lang->error_inline_no_users_selected, 'error'); admin_redirect("index.php?module=user-users".$vid_url); }
switch($mybb->input['inline_action']) { case 'multiactivate': // Run through the activating users, so that users already registered (but have been selected) aren't affected if(is_array($selected)) { $sql_array = implode(",", $selected); $query = $db->simple_select("users", "uid", "usergroup = '5' AND uid IN (".$sql_array.")"); while($user = $db->fetch_array($query)) { $to_update[] = $user['uid']; } }
if(is_array($to_update)) { $sql_array = implode(",", $to_update); $db->write_query("UPDATE ".TABLE_PREFIX."users SET usergroup = '2' WHERE uid IN (".$sql_array.")");
$cache->update_awaitingactivation();
// Action complete, grab stats and show success message - redirect user $to_update_count = count($to_update); $lang->inline_activated = $lang->sprintf($lang->inline_activated, my_number_format($to_update_count));
if($to_update_count != count($selected)) { // The update count is different to how many we selected! $not_updated_count = count($selected) - $to_update_count; $lang->inline_activated_more = $lang->sprintf($lang->inline_activated_more, my_number_format($not_updated_count)); $lang->inline_activated = $lang->inline_activated."<br />".$lang->inline_activated_more; // Add these stats to the message }
$mybb->input['action'] = "inline_activated"; // Force a change to the action so we can add it to the adminlog log_admin_action($to_update_count); // Add to adminlog my_unsetcookie("inlinemod_useracp"); // Unset the cookie, so that the users aren't still selected when we're redirected
flash_message($lang->inline_activated, 'success'); admin_redirect("index.php?module=user-users".$vid_url); } else { // Nothing was updated, show an error flash_message($lang->inline_activated_failed, 'error'); admin_redirect("index.php?module=user-users".$vid_url); } break; case 'multilift': // Get the users that are banned, and check that they have been selected if($mybb->input['no']) { admin_redirect("index.php?module=user-users".$vid_url); // User clicked on 'No' }
if($mybb->request_method == "post") { $sql_array = implode(",", $selected); $query = $db->simple_select("banned", "*", "uid IN (".$sql_array.")"); $to_be_unbanned = $db->num_rows($query); while($ban = $db->fetch_array($query)) { $updated_group = array( "usergroup" => $ban['oldgroup'], "additionalgroups" => $ban['oldadditionalgroups'], "displaygroup" => $ban['olddisplaygroup']
| case 'multiactivate': // Run through the activating users, so that users already registered (but have been selected) aren't affected if(is_array($selected)) { $sql_array = implode(",", $selected); $query = $db->simple_select("users", "uid, username, email", "usergroup = '5' AND uid IN (".$sql_array.")"); $user_mail_data = array(); while($user = $db->fetch_array($query)) { $to_update[] = $user['uid']; $user_mail_data[] = array('username' => $user['username'], 'email' => $user['email']); } }
if(is_array($to_update)) { $sql_array = implode(",", $to_update); $db->write_query("UPDATE ".TABLE_PREFIX."users SET usergroup = '2' WHERE uid IN (".$sql_array.")");
$cache->update_awaitingactivation();
// send activation mail foreach($user_mail_data as $mail_data) { $message = $lang->sprintf($lang->email_adminactivateaccount, $mail_data['username'], $mybb->settings['bbname'], $mybb->settings['bburl']); my_mail($mail_data['email'], $lang->sprintf($lang->emailsubject_activateaccount, $mybb->settings['bbname']), $message); }
// Action complete, grab stats and show success message - redirect user $to_update_count = count($to_update); $lang->inline_activated = $lang->sprintf($lang->inline_activated, my_number_format($to_update_count));
if($to_update_count != count($selected)) { // The update count is different to how many we selected! $not_updated_count = count($selected) - $to_update_count; $lang->inline_activated_more = $lang->sprintf($lang->inline_activated_more, my_number_format($not_updated_count)); $lang->inline_activated = $lang->inline_activated."<br />".$lang->inline_activated_more; // Add these stats to the message }
$mybb->input['action'] = "inline_activated"; // Force a change to the action so we can add it to the adminlog log_admin_action($to_update_count); // Add to adminlog my_unsetcookie("inlinemod_useracp"); // Unset the cookie, so that the users aren't still selected when we're redirected
flash_message($lang->inline_activated, 'success'); admin_redirect("index.php?module=user-users".$vid_url); } else { // Nothing was updated, show an error flash_message($lang->inline_activated_failed, 'error'); admin_redirect("index.php?module=user-users".$vid_url); } break; case 'multilift': // Get the users that are banned, and check that they have been selected if($mybb->input['no']) { admin_redirect("index.php?module=user-users".$vid_url); // User clicked on 'No' }
if($mybb->request_method == "post") { $sql_array = implode(",", $selected); $query = $db->simple_select("banned", "*", "uid IN (".$sql_array.")"); $to_be_unbanned = $db->num_rows($query); while($ban = $db->fetch_array($query)) { $updated_group = array( "usergroup" => $ban['oldgroup'], "additionalgroups" => $ban['oldadditionalgroups'], "displaygroup" => $ban['olddisplaygroup'] ); $db->update_query("users", $updated_group, "uid = '".$ban['uid']."'"); $db->delete_query("banned", "uid = '".$ban['uid']."'"); }
$cache->update_banned(); $cache->update_moderators();
$mybb->input['action'] = "inline_lift"; log_admin_action($to_be_unbanned); my_unsetcookie("inlinemod_useracp");
$lang->success_ban_lifted = $lang->sprintf($lang->success_ban_lifted, my_number_format($to_be_unbanned)); flash_message($lang->success_ban_lifted, 'success'); admin_redirect("index.php?module=user-users".$vid_url); } else { $page->output_confirm_action("index.php?module=user-users&action=inline_edit&inline_action=multilift", $lang->confirm_multilift); }
break; case 'multiban': if($mybb->input['processed'] == 1) { // We've posted ban information! // Build an array of users to ban, =D $sql_array = implode(",", $selected); // Build a cache array for this users that have been banned already $query = $db->simple_select("banned", "uid", "uid IN (".$sql_array.")"); while($user = $db->fetch_array($query)) { $bannedcache[] = "u_".$user['uid']; }
// Collect the users $query = $db->simple_select("users", "uid, username, usergroup, additionalgroups, displaygroup", "uid IN (".$sql_array.")");
if($mybb->input['bantime'] == '---') { $lifted = 0; } else { $lifted = ban_date2timestamp($mybb->input['bantime']); }
$reason = my_substr($mybb->input['reason'], 0, 255);
$banned_count = 0; while($user = $db->fetch_array($query)) { if($user['uid'] == $mybb->user['uid'] || is_super_admin($user['uid'])) { // We remove ourselves and Super Admins from the mix continue; }
if(is_array($bannedcache) && in_array("u_".$user['uid'], $bannedcache)) { // User already has a ban, update it! $update_array = array( "admin" => (int)$mybb->user['uid'], "dateline" => TIME_NOW, "bantime" => $db->escape_string($mybb->input['bantime']), "lifted" => $db->escape_string($lifted), "reason" => $db->escape_string($reason) ); $db->update_query("banned", $update_array, "uid = '".$user['uid']."'"); } else { // Not currently banned - insert the ban $insert_array = array( 'uid' => $user['uid'], 'gid' => $mybb->get_input('usergroup', MyBB::INPUT_INT), 'oldgroup' => $user['usergroup'], 'oldadditionalgroups' => $user['additionalgroups'], 'olddisplaygroup' => $user['displaygroup'], 'admin' => (int)$mybb->user['uid'], 'dateline' => TIME_NOW, 'bantime' => $db->escape_string($mybb->input['bantime']), 'lifted' => $db->escape_string($lifted), 'reason' => $db->escape_string($reason)
|
);
|
);
|
$db->update_query("users", $updated_group, "uid = '".$ban['uid']."'"); $db->delete_query("banned", "uid = '".$ban['uid']."'");
| $db->insert_query('banned', $insert_array);
|
}
|
}
|
| // Moved the user to the 'Banned' Group $update_array = array( 'usergroup' => 7, 'displaygroup' => 0, 'additionalgroups' => '', ); $db->update_query('users', $update_array, "uid = '{$user['uid']}'");
$db->delete_query("forumsubscriptions", "uid = '{$user['uid']}'"); $db->delete_query("threadsubscriptions", "uid = '{$user['uid']}'");
|
$cache->update_banned();
|
$cache->update_banned();
|
$cache->update_moderators();
$mybb->input['action'] = "inline_lift"; log_admin_action($to_be_unbanned); my_unsetcookie("inlinemod_useracp");
$lang->success_ban_lifted = $lang->sprintf($lang->success_ban_lifted, my_number_format($to_be_unbanned)); flash_message($lang->success_ban_lifted, 'success'); admin_redirect("index.php?module=user-users".$vid_url); } else { $page->output_confirm_action("index.php?module=user-users&action=inline_edit&inline_action=multilift", $lang->confirm_multilift); }
break; case 'multiban': if($mybb->input['processed'] == 1) { // We've posted ban information! // Build an array of users to ban, =D $sql_array = implode(",", $selected); // Build a cache array for this users that have been banned already $query = $db->simple_select("banned", "uid", "uid IN (".$sql_array.")"); while($user = $db->fetch_array($query)) { $bannedcache[] = "u_".$user['uid']; }
// Collect the users $query = $db->simple_select("users", "uid, username, usergroup, additionalgroups, displaygroup", "uid IN (".$sql_array.")");
if($mybb->input['bantime'] == '---') { $lifted = 0; } else { $lifted = ban_date2timestamp($mybb->input['bantime']); }
$reason = my_substr($mybb->input['reason'], 0, 255);
$banned_count = 0; while($user = $db->fetch_array($query)) { if($user['uid'] == $mybb->user['uid'] || is_super_admin($user['uid'])) { // We remove ourselves and Super Admins from the mix continue; }
if(is_array($bannedcache) && in_array("u_".$user['uid'], $bannedcache)) { // User already has a ban, update it! $update_array = array( "admin" => (int)$mybb->user['uid'], "dateline" => TIME_NOW, "bantime" => $db->escape_string($mybb->input['bantime']), "lifted" => $db->escape_string($lifted), "reason" => $db->escape_string($reason) ); $db->update_query("banned", $update_array, "uid = '".$user['uid']."'"); } else { // Not currently banned - insert the ban $insert_array = array( 'uid' => $user['uid'], 'gid' => $mybb->get_input('usergroup', MyBB::INPUT_INT), 'oldgroup' => $user['usergroup'], 'oldadditionalgroups' => $user['additionalgroups'], 'olddisplaygroup' => $user['displaygroup'], 'admin' => (int)$mybb->user['uid'], 'dateline' => TIME_NOW, 'bantime' => $db->escape_string($mybb->input['bantime']), 'lifted' => $db->escape_string($lifted), 'reason' => $db->escape_string($reason) ); $db->insert_query('banned', $insert_array); }
// Moved the user to the 'Banned' Group $update_array = array( 'usergroup' => 7, 'displaygroup' => 0, 'additionalgroups' => '', ); $db->update_query('users', $update_array, "uid = '{$user['uid']}'");
$db->delete_query("forumsubscriptions", "uid = '{$user['uid']}'"); $db->delete_query("threadsubscriptions", "uid = '{$user['uid']}'");
$cache->update_banned(); ++$banned_count; } $mybb->input['action'] = "inline_banned"; log_admin_action($banned_count, $lifted); my_unsetcookie("inlinemod_useracp"); // Remove the cookie of selected users as we've finished with them
$lang->users_banned = $lang->sprintf($lang->users_banned, $banned_count); flash_message($lang->users_banned, 'success'); admin_redirect("index.php?module=user-users".$vid_url); }
$page->output_header($lang->manage_users); $page->output_nav_tabs($sub_tabs, 'manage_users');
// Provide the user with a warning of what they're about to do $table = new Table; $lang->mass_ban_info = $lang->sprintf($lang->mass_ban_info, count($selected)); $table->construct_cell($lang->mass_ban_info); $table->construct_row(); $table->output($lang->important);
// If there's any errors, display inline if($errors) { $page->output_inline_error($errors); }
$form = new Form("index.php?module=user-users", "post"); echo $form->generate_hidden_field('action', 'inline_edit'); echo $form->generate_hidden_field('inline_action', 'multiban'); echo $form->generate_hidden_field('processed', '1');
$form_container = new FormContainer('<div class="float_right"><a href="index.php?module=user-users&action=inline_edit&inline_action=multilift&my_post_key='.$mybb->post_code.'">'.$lang->lift_bans.'</a></div>'.$lang->mass_ban); $form_container->output_row($lang->ban_reason, "", $form->generate_text_area('reason', $mybb->input['reason'], array('id' => 'reason', 'maxlength' => '255')), 'reason'); $ban_times = fetch_ban_times(); foreach($ban_times as $time => $period) { if($time != '---') { $friendly_time = my_date("D, jS M Y @ g:ia", ban_date2timestamp($time)); $period = "{$period} ({$friendly_time})";
| ++$banned_count; } $mybb->input['action'] = "inline_banned"; log_admin_action($banned_count, $lifted); my_unsetcookie("inlinemod_useracp"); // Remove the cookie of selected users as we've finished with them
$lang->users_banned = $lang->sprintf($lang->users_banned, $banned_count); flash_message($lang->users_banned, 'success'); admin_redirect("index.php?module=user-users".$vid_url); }
$page->output_header($lang->manage_users); $page->output_nav_tabs($sub_tabs, 'manage_users');
// Provide the user with a warning of what they're about to do $table = new Table; $lang->mass_ban_info = $lang->sprintf($lang->mass_ban_info, count($selected)); $table->construct_cell($lang->mass_ban_info); $table->construct_row(); $table->output($lang->important);
// If there's any errors, display inline if($errors) { $page->output_inline_error($errors); }
$form = new Form("index.php?module=user-users", "post"); echo $form->generate_hidden_field('action', 'inline_edit'); echo $form->generate_hidden_field('inline_action', 'multiban'); echo $form->generate_hidden_field('processed', '1');
$form_container = new FormContainer('<div class="float_right"><a href="index.php?module=user-users&action=inline_edit&inline_action=multilift&my_post_key='.$mybb->post_code.'">'.$lang->lift_bans.'</a></div>'.$lang->mass_ban); $form_container->output_row($lang->ban_reason, "", $form->generate_text_area('reason', $mybb->input['reason'], array('id' => 'reason', 'maxlength' => '255')), 'reason'); $ban_times = fetch_ban_times(); foreach($ban_times as $time => $period) { if($time != '---') { $friendly_time = my_date("D, jS M Y @ g:ia", ban_date2timestamp($time)); $period = "{$period} ({$friendly_time})"; } $length_list[$time] = $period; } $form_container->output_row($lang->ban_time, "", $form->generate_select_box('bantime', $length_list, $mybb->input['bantime'], array('id' => 'bantime')), 'bantime'); $form_container->end();
$buttons[] = $form->generate_submit_button($lang->ban_users); $form->output_submit_wrapper($buttons); $form->end(); $page->output_footer(); break; case 'multidelete': if($mybb->input['no']) { admin_redirect("index.php?module=user-users".$vid_url); // User clicked on 'No } else { if($mybb->input['processed'] == 1) { // Set up user handler. require_once MYBB_ROOT.'inc/datahandlers/user.php'; $userhandler = new UserDataHandler('delete');
// Delete users $deleted = $userhandler->delete_user($selected); $to_be_deleted = $deleted['deleted_users']; // Get the correct number of deleted users
// Update forum stats, remove the cookie and redirect the user my_unsetcookie("inlinemod_useracp"); $mybb->input['action'] = "inline_delete"; log_admin_action($to_be_deleted);
$lang->users_deleted = $lang->sprintf($lang->users_deleted, $to_be_deleted);
$cache->update_awaitingactivation();
flash_message($lang->users_deleted, 'success'); admin_redirect("index.php?module=user-users".$vid_url); }
$to_be_deleted = count($selected); $lang->confirm_multidelete = $lang->sprintf($lang->confirm_multidelete, my_number_format($to_be_deleted)); $page->output_confirm_action("index.php?module=user-users&action=inline_edit&inline_action=multidelete&my_post_key={$mybb->post_code}&processed=1", $lang->confirm_multidelete); } break; case 'multiprune': if($mybb->input['processed'] == 1) { if(($mybb->input['day'] || $mybb->input['month'] || $mybb->input['year']) && $mybb->input['set']) { $errors[] = $lang->multi_selected_dates; }
$day = $mybb->get_input('day', MyBB::INPUT_INT); $month = $mybb->get_input('month', MyBB::INPUT_INT); $year = $mybb->get_input('year', MyBB::INPUT_INT);
// Selected a date - check if the date the user entered is valid if($mybb->input['day'] || $mybb->input['month'] || $mybb->input['year']) { // Is the date sort of valid? if($day < 1 || $day > 31 || $month < 1 || $month > 12 || ($month == 2 && $day > 29)) { $errors[] = $lang->incorrect_date; }
// Check the month $months = get_bdays($year); if($day > $months[$month-1]) { $errors[] = $lang->incorrect_date; }
// Check the year if($year != 0 && ($year < (date("Y")-100)) || $year > date("Y")) { $errors[] = $lang->incorrect_date; }
if(!$errors) { // No errors, so let's continue and set the date to delete from $date = mktime(date('H'), date('i'), date('s'), $month, $day, $year); // Generate a unix time stamp } } elseif($mybb->input['set'] > 0) { // Set options // For this purpose, 1 month = 31 days $base_time = 24 * 60 * 60;
switch($mybb->input['set']) { case '1': $threshold = $base_time * 31; // 1 month = 31 days, in the standard terms break; case '2': $threshold = $base_time * 93; // 3 months = 31 days * 3 break; case '3': $threshold = $base_time * 183; // 6 months = 365 days / 2 break; case '4': $threshold = $base_time * 365; // 1 year = 365 days break; case '5': $threshold = $base_time * 548; // 18 months = 365 + 183 break; case '6': $threshold = $base_time * 730; // 2 years = 365 * 2 break; }
if(!$threshold) { // An option was entered that isn't in the dropdown box $errors[] = $lang->no_set_option; } else { $date = TIME_NOW - $threshold;
|
}
|
}
|
$length_list[$time] = $period; } $form_container->output_row($lang->ban_time, "", $form->generate_select_box('bantime', $length_list, $mybb->input['bantime'], array('id' => 'bantime')), 'bantime'); $form_container->end();
$buttons[] = $form->generate_submit_button($lang->ban_users); $form->output_submit_wrapper($buttons); $form->end(); $page->output_footer(); break; case 'multidelete': if($mybb->input['no']) { admin_redirect("index.php?module=user-users".$vid_url); // User clicked on 'No
| |
} else {
|
} else {
|
if($mybb->input['processed'] == 1) { // Set up user handler. require_once MYBB_ROOT.'inc/datahandlers/user.php'; $userhandler = new UserDataHandler('delete');
// Delete users $deleted = $userhandler->delete_user($selected); $to_be_deleted = $deleted['deleted_users']; // Get the correct number of deleted users
// Update forum stats, remove the cookie and redirect the user my_unsetcookie("inlinemod_useracp"); $mybb->input['action'] = "inline_delete"; log_admin_action($to_be_deleted);
$lang->users_deleted = $lang->sprintf($lang->users_deleted, $to_be_deleted);
$cache->update_awaitingactivation();
flash_message($lang->users_deleted, 'success'); admin_redirect("index.php?module=user-users".$vid_url); }
| $errors[] = $lang->no_prune_option; }
|
|
|
$to_be_deleted = count($selected); $lang->confirm_multidelete = $lang->sprintf($lang->confirm_multidelete, my_number_format($to_be_deleted)); $page->output_confirm_action("index.php?module=user-users&action=inline_edit&inline_action=multidelete&my_post_key={$mybb->post_code}&processed=1", $lang->confirm_multidelete); } break; case 'multiprune': if($mybb->input['processed'] == 1)
| if(!$errors)
|
{
|
{
|
if(($mybb->input['day'] || $mybb->input['month'] || $mybb->input['year']) && $mybb->input['set']) { $errors[] = $lang->multi_selected_dates; }
$day = $mybb->get_input('day', MyBB::INPUT_INT); $month = $mybb->get_input('month', MyBB::INPUT_INT); $year = $mybb->get_input('year', MyBB::INPUT_INT);
// Selected a date - check if the date the user entered is valid if($mybb->input['day'] || $mybb->input['month'] || $mybb->input['year']) { // Is the date sort of valid? if($day < 1 || $day > 31 || $month < 1 || $month > 12 || ($month == 2 && $day > 29)) { $errors[] = $lang->incorrect_date; }
// Check the month $months = get_bdays($year); if($day > $months[$month-1]) { $errors[] = $lang->incorrect_date; }
// Check the year if($year != 0 && ($year < (date("Y")-100)) || $year > date("Y")) { $errors[] = $lang->incorrect_date; }
if(!$errors) { // No errors, so let's continue and set the date to delete from $date = mktime(date('H'), date('i'), date('s'), $month, $day, $year); // Generate a unix time stamp } } elseif($mybb->input['set'] > 0) { // Set options // For this purpose, 1 month = 31 days $base_time = 24 * 60 * 60;
switch($mybb->input['set']) { case '1': $threshold = $base_time * 31; // 1 month = 31 days, in the standard terms break; case '2': $threshold = $base_time * 93; // 3 months = 31 days * 3 break; case '3': $threshold = $base_time * 183; // 6 months = 365 days / 2 break; case '4': $threshold = $base_time * 365; // 1 year = 365 days break; case '5': $threshold = $base_time * 548; // 18 months = 365 + 183 break; case '6': $threshold = $base_time * 730; // 2 years = 365 * 2 break; }
if(!$threshold) { // An option was entered that isn't in the dropdown box $errors[] = $lang->no_set_option; } else
| $sql_array = implode(",", $selected); $prune_array = array(); $query = $db->simple_select("users", "uid", "uid IN (".$sql_array.")"); while($user = $db->fetch_array($query)) { // Protect Super Admins if(is_super_admin($user['uid']) && !is_super_admin($mybb->user['uid']))
|
{
|
{
|
$date = TIME_NOW - $threshold; } } else { $errors[] = $lang->no_prune_option; }
if(!$errors) { $sql_array = implode(",", $selected); $prune_array = array(); $query = $db->simple_select("users", "uid", "uid IN (".$sql_array.")"); while($user = $db->fetch_array($query)) { // Protect Super Admins if(is_super_admin($user['uid']) && !is_super_admin($mybb->user['uid'])) { continue; }
$return_array = delete_user_posts($user['uid'], $date); // Delete user posts, and grab a list of threads to delete if($return_array && is_array($return_array)) { $prune_array = array_merge_recursive($prune_array, $return_array); } }
// No posts were found for the user, return error if(!is_array($prune_array) || count($prune_array) == 0) { flash_message($lang->prune_fail, 'error'); admin_redirect("index.php?module=user-users".$vid_url); }
// Require the rebuild functions require_once MYBB_ROOT.'/inc/functions.php'; require_once MYBB_ROOT.'/inc/functions_rebuild.php';
// We've finished deleting user's posts, so let's delete the threads if(is_array($prune_array['to_delete']) && count($prune_array['to_delete']) > 0) { foreach($prune_array['to_delete'] as $tid) { $db->delete_query("threads", "tid='$tid'"); $db->delete_query("threads", "closed='moved|$tid'"); $db->delete_query("threadsubscriptions", "tid='$tid'"); $db->delete_query("polls", "tid='$tid'"); $db->delete_query("threadsread", "tid='$tid'"); $db->delete_query("threadratings", "tid='$tid'"); } }
// After deleting threads, rebuild the thread counters for the affected threads if(is_array($prune_array['thread_update']) && count($prune_array['thread_update']) > 0) { $sql_array = implode(",", $prune_array['thread_update']); $query = $db->simple_select("threads", "tid", "tid IN (".$sql_array.")", array('order_by' => 'tid', 'order_dir' => 'asc')); while($thread = $db->fetch_array($query)) { rebuild_thread_counters($thread['tid']); }
| continue;
|
}
|
}
|
// After updating thread counters, update the affected forum counters if(is_array($prune_array['forum_update']) && count($prune_array['forum_update']) > 0)
| $return_array = delete_user_posts($user['uid'], $date); // Delete user posts, and grab a list of threads to delete if($return_array && is_array($return_array))
|
{
|
{
|
$sql_array = implode(",", $prune_array['forum_update']); $query = $db->simple_select("forums", "fid", "fid IN (".$sql_array.")", array('order_by' => 'fid', 'order_dir' => 'asc')); while($forum = $db->fetch_array($query)) { // Because we have a recursive array merge, check to see if there isn't a duplicated forum to update if($looped_forum == $forum['fid']) { continue; } $looped_forum = $forum['fid']; rebuild_forum_counters($forum['fid']); }
| $prune_array = array_merge_recursive($prune_array, $return_array);
|
}
|
}
|
//log_admin_action(); my_unsetcookie("inlinemod_useracp"); // We've got our users, remove the cookie flash_message($lang->prune_complete, 'success');
| }
// No posts were found for the user, return error if(!is_array($prune_array) || count($prune_array) == 0) { flash_message($lang->prune_fail, 'error');
|
admin_redirect("index.php?module=user-users".$vid_url); }
|
admin_redirect("index.php?module=user-users".$vid_url); }
|
}
$page->output_header($lang->manage_users); $page->output_nav_tabs($sub_tabs, 'manage_users');
// Display a table warning $table = new Table; $lang->mass_prune_info = $lang->sprintf($lang->mass_prune_info, count($selected)); $table->construct_cell($lang->mass_prune_info); $table->construct_row(); $table->output($lang->important);
if($errors) { $page->output_inline_error($errors); }
// Display the prune options $form = new Form("index.php?module=user-users", "post"); echo $form->generate_hidden_field('action', 'inline_edit'); echo $form->generate_hidden_field('inline_action', 'multiprune'); echo $form->generate_hidden_field('processed', '1');
$form_container = new FormContainer($lang->mass_prune_posts);
// Generate a list of days (1 - 31) $day_options = array(); $day_options[] = " "; for($i = 1; $i <= 31; ++$i) { $day_options[] = $i; }
// Generate a list of months (1 - 12) $month_options = array(); $month_options[] = " "; for($i = 1; $i <= 12; ++$i) { $string = "month_{$i}"; $month_options[] = $lang->$string; } $date_box = $form->generate_select_box('day', $day_options, $mybb->input['day']); $month_box = $form->generate_select_box('month', $month_options, $mybb->input['month']); $year_box = $form->generate_numeric_field('year', $mybb->input['year'], array('id' => 'year', 'style' => 'width: 50px;', 'min' => 0));
$prune_select = $date_box.$month_box.$year_box; $form_container->output_row($lang->manual_date, "", $prune_select, 'date');
// Generate the set date box $set_options = array(); $set_options[] = $lang->set_an_option; for($i = 1; $i <= 6; ++$i) { $string = "option_{$i}"; $set_options[] = $lang->$string; }
| |
|
|
$form_container->output_row($lang->relative_date, "", $lang->delete_posts." ".$form->generate_select_box('set', $set_options, $mybb->input['set']), 'set'); $form_container->end();
| // Require the rebuild functions require_once MYBB_ROOT.'/inc/functions.php'; require_once MYBB_ROOT.'/inc/functions_rebuild.php';
// We've finished deleting user's posts, so let's delete the threads if(is_array($prune_array['to_delete']) && count($prune_array['to_delete']) > 0) { foreach($prune_array['to_delete'] as $tid) { $db->delete_query("threads", "tid='$tid'"); $db->delete_query("threads", "closed='moved|$tid'"); $db->delete_query("threadsubscriptions", "tid='$tid'"); $db->delete_query("polls", "tid='$tid'"); $db->delete_query("threadsread", "tid='$tid'"); $db->delete_query("threadratings", "tid='$tid'"); } }
|
|
|
$buttons[] = $form->generate_submit_button($lang->prune_posts); $form->output_submit_wrapper($buttons); $form->end(); $page->output_footer(); break; case 'multiusergroup': if($mybb->input['processed'] == 1) { // Determine additional usergroups if(is_array($mybb->input['additionalgroups']))
| // After deleting threads, rebuild the thread counters for the affected threads if(is_array($prune_array['thread_update']) && count($prune_array['thread_update']) > 0)
|
{
|
{
|
foreach($mybb->input['additionalgroups'] as $key => $gid)
| $sql_array = implode(",", $prune_array['thread_update']); $query = $db->simple_select("threads", "tid", "tid IN (".$sql_array.")", array('order_by' => 'tid', 'order_dir' => 'asc')); while($thread = $db->fetch_array($query))
|
{
|
{
|
if($gid == $mybb->input['usergroup'])
| rebuild_thread_counters($thread['tid']); } }
// After updating thread counters, update the affected forum counters if(is_array($prune_array['forum_update']) && count($prune_array['forum_update']) > 0) { $sql_array = implode(",", $prune_array['forum_update']); $query = $db->simple_select("forums", "fid", "fid IN (".$sql_array.")", array('order_by' => 'fid', 'order_dir' => 'asc')); while($forum = $db->fetch_array($query)) { // Because we have a recursive array merge, check to see if there isn't a duplicated forum to update if($looped_forum == $forum['fid'])
|
{
|
{
|
unset($mybb->input['additionalgroups'][$key]);
| continue;
|
}
|
}
|
}
$additionalgroups = implode(",", array_map('intval', $mybb->input['additionalgroups'])); } else { $additionalgroups = ''; }
// Create an update array $update_array = array( "usergroup" => $mybb->get_input('usergroup', MyBB::INPUT_INT), "additionalgroups" => $additionalgroups, "displaygroup" => $mybb->get_input('displaygroup', MyBB::INPUT_INT) );
// Do the usergroup update for all those selected // If the a selected user is a super admin, don't update that user foreach($selected as $user)
| $looped_forum = $forum['fid']; rebuild_forum_counters($forum['fid']); } }
//log_admin_action(); my_unsetcookie("inlinemod_useracp"); // We've got our users, remove the cookie flash_message($lang->prune_complete, 'success'); admin_redirect("index.php?module=user-users".$vid_url); } }
$page->output_header($lang->manage_users); $page->output_nav_tabs($sub_tabs, 'manage_users');
// Display a table warning $table = new Table; $lang->mass_prune_info = $lang->sprintf($lang->mass_prune_info, count($selected)); $table->construct_cell($lang->mass_prune_info); $table->construct_row(); $table->output($lang->important);
if($errors) { $page->output_inline_error($errors); }
// Display the prune options $form = new Form("index.php?module=user-users", "post"); echo $form->generate_hidden_field('action', 'inline_edit'); echo $form->generate_hidden_field('inline_action', 'multiprune'); echo $form->generate_hidden_field('processed', '1');
$form_container = new FormContainer($lang->mass_prune_posts);
// Generate a list of days (1 - 31) $day_options = array(); $day_options[] = " "; for($i = 1; $i <= 31; ++$i) { $day_options[] = $i; }
// Generate a list of months (1 - 12) $month_options = array(); $month_options[] = " "; for($i = 1; $i <= 12; ++$i) { $string = "month_{$i}"; $month_options[] = $lang->$string; } $date_box = $form->generate_select_box('day', $day_options, $mybb->input['day']); $month_box = $form->generate_select_box('month', $month_options, $mybb->input['month']); $year_box = $form->generate_numeric_field('year', $mybb->input['year'], array('id' => 'year', 'style' => 'width: 50px;', 'min' => 0));
$prune_select = $date_box.$month_box.$year_box; $form_container->output_row($lang->manual_date, "", $prune_select, 'date');
// Generate the set date box $set_options = array(); $set_options[] = $lang->set_an_option; for($i = 1; $i <= 6; ++$i) { $string = "option_{$i}"; $set_options[] = $lang->$string; }
$form_container->output_row($lang->relative_date, "", $lang->delete_posts." ".$form->generate_select_box('set', $set_options, $mybb->input['set']), 'set'); $form_container->end();
$buttons[] = $form->generate_submit_button($lang->prune_posts); $form->output_submit_wrapper($buttons); $form->end(); $page->output_footer(); break; case 'multiusergroup': if($mybb->input['processed'] == 1) { // Determine additional usergroups if(is_array($mybb->input['additionalgroups'])) { foreach($mybb->input['additionalgroups'] as $key => $gid)
|
{
|
{
|
if(!is_super_admin($user))
| if($gid == $mybb->input['usergroup'])
|
{
|
{
|
$users_to_update[] = $user;
| unset($mybb->input['additionalgroups'][$key]);
|
}
|
}
|
}
$to_update_count = count($users_to_update); if($to_update_count > 0 && is_array($users_to_update)) { // Update the users in the database $sql = implode(",", $users_to_update); $db->update_query("users", $update_array, "uid IN (".$sql.")");
// Redirect the admin... $mybb->input['action'] = "inline_usergroup"; log_admin_action($to_update_count); my_unsetcookie("inlinemod_useracp"); flash_message($lang->success_mass_usergroups, 'success'); admin_redirect("index.php?module=user-users".$vid_url); } else
| }
$additionalgroups = implode(",", array_map('intval', $mybb->input['additionalgroups'])); } else { $additionalgroups = ''; }
// Create an update array $update_array = array( "usergroup" => $mybb->get_input('usergroup', MyBB::INPUT_INT), "additionalgroups" => $additionalgroups, "displaygroup" => $mybb->get_input('displaygroup', MyBB::INPUT_INT) );
// Do the usergroup update for all those selected // If the a selected user is a super admin, don't update that user foreach($selected as $user) { if(!is_super_admin($user))
|
{
|
{
|
// They tried to edit super admins! Uh-oh! $errors[] = $lang->no_usergroup_changed;
| $users_to_update[] = $user;
|
} }
|
} }
|
$page->output_header($lang->manage_users); $page->output_nav_tabs($sub_tabs, 'manage_users');
// Display a table warning $table = new Table; $lang->usergroup_info = $lang->sprintf($lang->usergroup_info, count($selected)); $table->construct_cell($lang->usergroup_info); $table->construct_row(); $table->output($lang->important);
if($errors) { $page->output_inline_error($errors); }
// Display the usergroup options $form = new Form("index.php?module=user-users", "post"); echo $form->generate_hidden_field('action', 'inline_edit'); echo $form->generate_hidden_field('inline_action', 'multiusergroup'); echo $form->generate_hidden_field('processed', '1');
$form_container = new FormContainer($lang->mass_usergroups);
// Usergroups $display_group_options[0] = $lang->use_primary_user_group; $options = array(); $query = $db->simple_select("usergroups", "gid, title", "gid != '1'", array('order_by' => 'title')); while($usergroup = $db->fetch_array($query))
| $to_update_count = count($users_to_update); if($to_update_count > 0 && is_array($users_to_update))
|
{
|
{
|
$options[$usergroup['gid']] = htmlspecialchars_uni($usergroup['title']); $display_group_options[$usergroup['gid']] = htmlspecialchars_uni($usergroup['title']); }
| // Update the users in the database $sql = implode(",", $users_to_update); $db->update_query("users", $update_array, "uid IN (".$sql.")");
|
|
|
if(!is_array($mybb->input['additionalgroups']))
| // Redirect the admin... $mybb->input['action'] = "inline_usergroup"; log_admin_action($to_update_count); my_unsetcookie("inlinemod_useracp"); flash_message($lang->success_mass_usergroups, 'success'); admin_redirect("index.php?module=user-users".$vid_url); } else
|
{
|
{
|
$mybb->input['additionalgroups'] = explode(',', $mybb->input['additionalgroups']);
| // They tried to edit super admins! Uh-oh! $errors[] = $lang->no_usergroup_changed;
|
}
|
}
|
$form_container->output_row($lang->primary_user_group, "", $form->generate_select_box('usergroup', $options, $mybb->input['usergroup'], array('id' => 'usergroup')), 'usergroup'); $form_container->output_row($lang->additional_user_groups, $lang->additional_user_groups_desc, $form->generate_select_box('additionalgroups[]', $options, $mybb->input['additionalgroups'], array('id' => 'additionalgroups', 'multiple' => true, 'size' => 5)), 'additionalgroups'); $form_container->output_row($lang->display_user_group, "", $form->generate_select_box('displaygroup', $display_group_options, $mybb->input['displaygroup'], array('id' => 'displaygroup')), 'displaygroup');
$form_container->end();
$buttons[] = $form->generate_submit_button($lang->alter_usergroups); $form->output_submit_wrapper($buttons); $form->end(); $page->output_footer(); break; }
| }
$page->output_header($lang->manage_users); $page->output_nav_tabs($sub_tabs, 'manage_users');
// Display a table warning $table = new Table; $lang->usergroup_info = $lang->sprintf($lang->usergroup_info, count($selected)); $table->construct_cell($lang->usergroup_info); $table->construct_row(); $table->output($lang->important);
if($errors) { $page->output_inline_error($errors); }
// Display the usergroup options $form = new Form("index.php?module=user-users", "post"); echo $form->generate_hidden_field('action', 'inline_edit'); echo $form->generate_hidden_field('inline_action', 'multiusergroup'); echo $form->generate_hidden_field('processed', '1');
$form_container = new FormContainer($lang->mass_usergroups);
// Usergroups $display_group_options[0] = $lang->use_primary_user_group; $options = array(); $query = $db->simple_select("usergroups", "gid, title", "gid != '1'", array('order_by' => 'title')); while($usergroup = $db->fetch_array($query)) { $options[$usergroup['gid']] = htmlspecialchars_uni($usergroup['title']); $display_group_options[$usergroup['gid']] = htmlspecialchars_uni($usergroup['title']); }
if(!is_array($mybb->input['additionalgroups'])) { $mybb->input['additionalgroups'] = explode(',', $mybb->input['additionalgroups']); }
$form_container->output_row($lang->primary_user_group, "", $form->generate_select_box('usergroup', $options, $mybb->input['usergroup'], array('id' => 'usergroup')), 'usergroup'); $form_container->output_row($lang->additional_user_groups, $lang->additional_user_groups_desc, $form->generate_select_box('additionalgroups[]', $options, $mybb->input['additionalgroups'], array('id' => 'additionalgroups', 'multiple' => true, 'size' => 5)), 'additionalgroups'); $form_container->output_row($lang->display_user_group, "", $form->generate_select_box('displaygroup', $display_group_options, $mybb->input['displaygroup'], array('id' => 'displaygroup')), 'displaygroup');
$form_container->end();
$buttons[] = $form->generate_submit_button($lang->alter_usergroups); $form->output_submit_wrapper($buttons); $form->end(); $page->output_footer(); break;
|
} }
|
} }
|
|
|
if(!$mybb->input['action']) { $plugins->run_hooks("admin_user_users_start");
| if(!$mybb->input['action']) { $plugins->run_hooks("admin_user_users_start");
|
Zeile 3044 | Zeile 3036 |
---|
{ $default_view = fetch_default_view("user"); if(!$default_view)
|
{ $default_view = fetch_default_view("user"); if(!$default_view)
|
{
| {
|
$default_view = "0"; } $query = $db->simple_select("adminviews", "*", "type='user' AND (vid='{$default_view}' OR uid=0)", array("order_by" => "uid", "order_dir" => "desc")); $admin_view = $db->fetch_array($query);
|
$default_view = "0"; } $query = $db->simple_select("adminviews", "*", "type='user' AND (vid='{$default_view}' OR uid=0)", array("order_by" => "uid", "order_dir" => "desc")); $admin_view = $db->fetch_array($query);
|
}
| }
|
}
// Fetch a list of all of the views for this user $popup = new PopupMenu("views", $lang->views);
|
}
// Fetch a list of all of the views for this user $popup = new PopupMenu("views", $lang->views);
|
|
|
$query = $db->simple_select("adminviews", "*", "type='user' AND (visibility=2 OR uid={$mybb->user['uid']})", array("order_by" => "title")); while($view = $db->fetch_array($query)) { $popup->add_item(htmlspecialchars_uni($view['title']), "index.php?module=user-users&vid={$view['vid']}");
|
$query = $db->simple_select("adminviews", "*", "type='user' AND (visibility=2 OR uid={$mybb->user['uid']})", array("order_by" => "title")); while($view = $db->fetch_array($query)) { $popup->add_item(htmlspecialchars_uni($view['title']), "index.php?module=user-users&vid={$view['vid']}");
|
}
| }
|
$popup->add_item("<em>{$lang->manage_views}</em>", "index.php?module=user-users&action=views"); $admin_view['popup'] = $popup->fetch();
if(isset($mybb->input['type']))
|
$popup->add_item("<em>{$lang->manage_views}</em>", "index.php?module=user-users&action=views"); $admin_view['popup'] = $popup->fetch();
if(isset($mybb->input['type']))
|
{
| {
|
$admin_view['view_type'] = $mybb->input['type']; }
| $admin_view['view_type'] = $mybb->input['type']; }
|
Zeile 3074 | Zeile 3066 |
---|
{ // If we came from the home page and clicked on the "Activate Users" link, send them back to here if($admin_session['data']['from'] == "home")
|
{ // If we came from the home page and clicked on the "Activate Users" link, send them back to here if($admin_session['data']['from'] == "home")
|
{
| {
|
flash_message($admin_session['data']['flash_message2']['message'], $admin_session['data']['flash_message2']['type']); update_admin_session('flash_message2', ''); update_admin_session('from', '');
| flash_message($admin_session['data']['flash_message2']['message'], $admin_session['data']['flash_message2']['type']); update_admin_session('flash_message2', ''); update_admin_session('from', '');
|
Zeile 3084 | Zeile 3076 |
---|
else { $errors[] = $lang->error_no_users_found;
|
else { $errors[] = $lang->error_no_users_found;
|
}
| }
|
}
// If we have any error messages, show them if($errors)
|
}
// If we have any error messages, show them if($errors)
|
{
| {
|
if($inline != true) { echo "<div style=\"display: inline; float: right;\">{$admin_view['popup']}</div><br />\n";
| if($inline != true) { echo "<div style=\"display: inline; float: right;\">{$admin_view['popup']}</div><br />\n";
|
Zeile 3102 | Zeile 3094 |
---|
$page->output_footer(); }
|
$page->output_footer(); }
|
| /** * @param array $view * * @return string */
|
function build_users_view($view) { global $mybb, $db, $cache, $lang, $user_view_fields, $page;
| function build_users_view($view) { global $mybb, $db, $cache, $lang, $user_view_fields, $page;
|
Zeile 3123 | Zeile 3120 |
---|
if(!isset($view['url'])) { $view['url'] = "index.php?module=user-users";
|
if(!isset($view['url'])) { $view['url'] = "index.php?module=user-users";
|
}
| }
|
if(!is_array($view['conditions'])) { $view['conditions'] = my_unserialize($view['conditions']);
| if(!is_array($view['conditions'])) { $view['conditions'] = my_unserialize($view['conditions']);
|
Zeile 3202 | Zeile 3199 |
---|
$table->construct_header($view_field['title'], $field_options); } $table->construct_header("<input type=\"checkbox\" name=\"allbox\" onclick=\"inlineModeration.checkAll(this);\" />"); // Create a header for the "select" boxes
|
$table->construct_header($view_field['title'], $field_options); } $table->construct_header("<input type=\"checkbox\" name=\"allbox\" onclick=\"inlineModeration.checkAll(this);\" />"); // Create a header for the "select" boxes
|
}
| }
|
$search_sql = '1=1';
| $search_sql = '1=1';
|
Zeile 3282 | Zeile 3279 |
---|
$ip_sql = "{$search_field} BETWEEN ".$db->escape_binary($ip_range[0])." AND ".$db->escape_binary($ip_range[1]); } $search_sql .= " AND {$ip_sql}";
|
$ip_sql = "{$search_field} BETWEEN ".$db->escape_binary($ip_range[0])." AND ".$db->escape_binary($ip_range[1]); } $search_sql .= " AND {$ip_sql}";
|
} }
| } }
|
// Post IP searching if(!empty($view['conditions']['postip']))
| // Post IP searching if(!empty($view['conditions']['postip']))
|
Zeile 3352 | Zeile 3349 |
---|
} else {
|
} else {
|
$userfield_sql .= ' AND '.$db->escape_string($column)." LIKE '%".$db->escape_string($input)."%'";
| $userfield_sql .= ' AND '.$db->escape_string($column)." LIKE '%".$db->escape_string_like($input)."%'";
|
} } }
| } } }
|
Zeile 3779 | Zeile 3776 |
---|
return $built_view; }
|
return $built_view; }
|
| /** * @param array $user * @param array $view * @param int $i * * @return string */
|
function build_user_view_card($user, $view, &$i) { global $user_view_fields;
| function build_user_view_card($user, $view, &$i) { global $user_view_fields;
|
Zeile 3859 | Zeile 3863 |
---|
}
|
}
|
| /** * @param array $user * @param array $view * @param DefaultTable $table */
|
function build_user_view_table($user, $view, &$table) { global $user_view_fields;
| function build_user_view_table($user, $view, &$table) { global $user_view_fields;
|
Zeile 3896 | Zeile 3905 |
---|
$table->construct_row(); }
|
$table->construct_row(); }
|
| /** * @param array $user * @param int $max_width * @param int $max_height * * @return array */
|
function fetch_scaled_avatar($user, $max_width=80, $max_height=80) { $scaled_dimensions = array(
| function fetch_scaled_avatar($user, $max_width=80, $max_height=80) { $scaled_dimensions = array(
|
Zeile 3916 | Zeile 3932 |
---|
return array("width" => $scaled_dimensions['width'], "height" => $scaled_dimensions['height']); }
|
return array("width" => $scaled_dimensions['width'], "height" => $scaled_dimensions['height']); }
|
| /** * @param array $fields * @param array $values * @param DefaultFormContainer $form_container * @param DefaultForm $form * @param bool $search */
|
function output_custom_profile_fields($fields, $values, &$form_container, &$form, $search=false) { global $lang;
| function output_custom_profile_fields($fields, $values, &$form_container, &$form, $search=false) { global $lang;
|
Zeile 3928 | Zeile 3951 |
---|
{ $profile_field['name'] = htmlspecialchars_uni($profile_field['name']); $profile_field['description'] = htmlspecialchars_uni($profile_field['description']);
|
{ $profile_field['name'] = htmlspecialchars_uni($profile_field['name']); $profile_field['description'] = htmlspecialchars_uni($profile_field['description']);
|
$profile_field['type'] = htmlspecialchars_uni($profile_field['type']);
| |
list($type, $options) = explode("\n", $profile_field['type'], 2); $type = trim($type); $field_name = "fid{$profile_field['fid']}";
| list($type, $options) = explode("\n", $profile_field['type'], 2); $type = trim($type); $field_name = "fid{$profile_field['fid']}";
|
Zeile 3948 | Zeile 3970 |
---|
$selected_options = array(); foreach($user_options as $val) {
|
$selected_options = array(); foreach($user_options as $val) {
|
$selected_options[$val] = $val;
| $selected_options[$val] = htmlspecialchars_uni($val);
|
}
$select_options = explode("\n", $options);
|
}
$select_options = explode("\n", $options);
|
$options = array(); if($search == true) { $select_options[''] = $lang->na; }
foreach($select_options as $val) { $val = trim($val); $options[$val] = $val; } if(!$profile_field['length'])
| $options = array(); if($search == true) { $select_options[''] = $lang->na; }
foreach($select_options as $val) { $val = htmlspecialchars_uni(trim($val)); $options[$val] = $val; } if(!$profile_field['length'])
|
{ $profile_field['length'] = 3; }
| { $profile_field['length'] = 3; }
|
Zeile 3979 | Zeile 4001 |
---|
$options = array(); foreach($select_options as $val) {
|
$options = array(); foreach($select_options as $val) {
|
$val = trim($val);
| $val = htmlspecialchars_uni(trim($val));
|
$options[$val] = $val; } if(!$profile_field['length'])
| $options[$val] = $val; } if(!$profile_field['length'])
|
Zeile 3988 | Zeile 4010 |
---|
} if($search == true) {
|
} if($search == true) {
|
$code = $form->generate_select_box("profile_fields[{$field_name}][{$field_name}]", $options, $values[$field_name], array('id' => "profile_field_{$field_name}", 'size' => $profile_field['length']));
| $code = $form->generate_select_box("profile_fields[{$field_name}][{$field_name}]", $options, htmlspecialchars_uni($values[$field_name]), array('id' => "profile_field_{$field_name}", 'size' => $profile_field['length']));
|
} else {
|
} else {
|
$code = $form->generate_select_box("profile_fields[{$field_name}]", $options, $values[$field_name], array('id' => "profile_field_{$field_name}", 'size' => $profile_field['length']));
| $code = $form->generate_select_box("profile_fields[{$field_name}]", $options, htmlspecialchars_uni($values[$field_name]), array('id' => "profile_field_{$field_name}", 'size' => $profile_field['length']));
|
} break; case "radio":
| } break; case "radio":
|
Zeile 4006 | Zeile 4028 |
---|
foreach($radio_options as $val) { $val = trim($val);
|
foreach($radio_options as $val) { $val = trim($val);
|
$code .= $form->generate_radio_button("profile_fields[{$field_name}]", $val, $val, array('id' => "profile_field_{$field_name}", 'checked' => ($val == $values[$field_name] ? true : false)))."<br />";
| $code .= $form->generate_radio_button("profile_fields[{$field_name}]", $val, htmlspecialchars_uni($val), array('id' => "profile_field_{$field_name}", 'checked' => ($val == $values[$field_name] ? true : false)))."<br />";
|
} break; case "checkbox":
| } break; case "checkbox":
|
Zeile 4032 | Zeile 4054 |
---|
foreach($select_options as $val) { $val = trim($val);
|
foreach($select_options as $val) { $val = trim($val);
|
$code .= $form->generate_check_box("profile_fields[{$field_name}][]", $val, $val, array('id' => "profile_field_{$field_name}", 'checked' => ($val == $selected_options[$val] ? true : false)))."<br />";
| $code .= $form->generate_check_box("profile_fields[{$field_name}][]", $val, htmlspecialchars_uni($val), array('id' => "profile_field_{$field_name}", 'checked' => ($val == $selected_options[$val] ? true : false)))."<br />";
|
} break; case "textarea":
| } break; case "textarea":
|
Zeile 4060 | Zeile 4082 |
---|
} }
|
} }
|
| /** * @param array $input * @param DefaultForm $form */
|
function user_search_conditions($input=array(), &$form) { global $mybb, $db, $lang;
| function user_search_conditions($input=array(), &$form) { global $mybb, $db, $lang;
|
Zeile 4152 | Zeile 4178 |
---|
<!-- $("#username").select2({ placeholder: "'.$lang->search_for_a_user.'",
|
<!-- $("#username").select2({ placeholder: "'.$lang->search_for_a_user.'",
|
minimumInputLength: 3, maximumSelectionSize: 3,
| minimumInputLength: 2,
|
multiple: false, ajax: { // instead of writing the function to execute the request we use Select2\'s convenient helper url: "../xmlhttp.php?action=get_users",
| multiple: false, ajax: { // instead of writing the function to execute the request we use Select2\'s convenient helper url: "../xmlhttp.php?action=get_users",
|