Zeile 187 | Zeile 187 |
---|
{ case "pgsql": $query = $db->query("
|
{ case "pgsql": $query = $db->query("
|
SELECT a.*, u.uid AS useruid, u.username, SUM(a.filesize) as totalsize
| SELECT a.uid, u.username, SUM(a.filesize) as totalsize
|
FROM ".TABLE_PREFIX."attachments a LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=a.uid)
|
FROM ".TABLE_PREFIX."attachments a LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=a.uid)
|
GROUP BY ".$db->build_fields_string("attachments", "a.").",u.uid,u.username
| GROUP BY a.uid, u.username
|
ORDER BY totalsize DESC LIMIT 5 "); break; default: $query = $db->query("
|
ORDER BY totalsize DESC LIMIT 5 "); break; default: $query = $db->query("
|
SELECT a.*, u.uid AS useruid, u.username, SUM(a.filesize) as totalsize
| SELECT a.uid, u.username, SUM(a.filesize) as totalsize
|
FROM ".TABLE_PREFIX."attachments a LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=a.uid) GROUP BY a.uid
| FROM ".TABLE_PREFIX."attachments a LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=a.uid) GROUP BY a.uid
|
Zeile 207 | Zeile 207 |
---|
} while($user = $db->fetch_array($query)) {
|
} while($user = $db->fetch_array($query)) {
|
if(!$user['useruid'])
| if(!$user['uid'])
|
{ $user['username'] = $lang->na; }
|
{ $user['username'] = $lang->na; }
|
$table->construct_cell(build_profile_link($user['username'], $user['useruid'], "_blank"));
| $table->construct_cell(build_profile_link(htmlspecialchars_uni($user['username']), $user['uid'], "_blank"));
|
$table->construct_cell("<a href=\"index.php?module=forum-attachments&results=1&username=".urlencode($user['username'])."\" target=\"_blank\">".get_friendly_size($user['totalsize'])."</a>", array('class' => 'align_center')); $table->construct_row(); }
| $table->construct_cell("<a href=\"index.php?module=forum-attachments&results=1&username=".urlencode($user['username'])."\" target=\"_blank\">".get_friendly_size($user['totalsize'])."</a>", array('class' => 'align_center')); $table->construct_row(); }
|
Zeile 223 | Zeile 223 |
---|
if($mybb->input['action'] == "delete_orphans" && $mybb->request_method == "post") { $plugins->run_hooks("admin_forum_attachments_delete_orphans");
|
if($mybb->input['action'] == "delete_orphans" && $mybb->request_method == "post") { $plugins->run_hooks("admin_forum_attachments_delete_orphans");
|
| $success_count = $error_count = 0;
|
// Deleting specific attachments from uploads directory if(is_array($mybb->input['orphaned_files'])) {
|
// Deleting specific attachments from uploads directory if(is_array($mybb->input['orphaned_files'])) {
|
| /** * @param string $string * * @return string */
|
function clean_filename($string) { return str_replace(array(".."), "", $string);
|
function clean_filename($string) { return str_replace(array(".."), "", $string);
|
}
| }
|
$mybb->input['orphaned_files'] = array_map("clean_filename", $mybb->input['orphaned_files']); foreach($mybb->input['orphaned_files'] as $file) { if(!@unlink(MYBB_ROOT.$mybb->settings['uploadspath']."/".$file))
|
$mybb->input['orphaned_files'] = array_map("clean_filename", $mybb->input['orphaned_files']); foreach($mybb->input['orphaned_files'] as $file) { if(!@unlink(MYBB_ROOT.$mybb->settings['uploadspath']."/".$file))
|
{ $error = true; }
| { $error_count++; } else { $success_count++; }
|
} }
// Deleting physical attachments which exist in database if(is_array($mybb->input['orphaned_attachments']))
|
} }
// Deleting physical attachments which exist in database if(is_array($mybb->input['orphaned_attachments']))
|
{
| {
|
$mybb->input['orphaned_attachments'] = array_map("intval", $mybb->input['orphaned_attachments']); require_once MYBB_ROOT."inc/functions_upload.php";
$query = $db->simple_select("attachments", "aid,pid,posthash", "aid IN (".implode(",", $mybb->input['orphaned_attachments']).")"); while($attachment = $db->fetch_array($query))
|
$mybb->input['orphaned_attachments'] = array_map("intval", $mybb->input['orphaned_attachments']); require_once MYBB_ROOT."inc/functions_upload.php";
$query = $db->simple_select("attachments", "aid,pid,posthash", "aid IN (".implode(",", $mybb->input['orphaned_attachments']).")"); while($attachment = $db->fetch_array($query))
|
{
| {
|
if(!$attachment['pid']) { remove_attachment(null, $attachment['posthash'], $attachment['aid']);
| if(!$attachment['pid']) { remove_attachment(null, $attachment['posthash'], $attachment['aid']);
|
Zeile 258 | Zeile 269 |
---|
{ remove_attachment($attachment['pid'], null, $attachment['aid']); }
|
{ remove_attachment($attachment['pid'], null, $attachment['aid']); }
|
} }
$plugins->run_hooks("admin_forum_attachments_delete_orphans_commit");
| $success_count++; } }
$plugins->run_hooks("admin_forum_attachments_delete_orphans_commit");
|
// Log admin action log_admin_action();
|
// Log admin action log_admin_action();
|
if($error == true)
| $message = ''; $status = 'success'; if($error_count > 0) { $status = 'error'; $message = $lang->sprintf($lang->error_count, $error_count); }
if($success_count > 0)
|
{
|
{
|
flash_message($lang->error_not_all_removed, 'error');
| if($error_count > 0) { $message .= '<br />'.$lang->sprintf($lang->success_count, $success_count); } else { $message = $lang->success_orphan_deleted; }
|
}
|
}
|
else { flash_message($lang->success_orphan_deleted, 'success'); } admin_redirect("index.php?module=forum-attachments");
| flash_message($message, $status); admin_redirect('index.php?module=forum-attachments');
|
}
if($mybb->input['action'] == "orphans")
|
}
if($mybb->input['action'] == "orphans")
|
{
| {
|
$plugins->run_hooks("admin_forum_attachments_orphans");
// Oprhans are defined as:
| $plugins->run_hooks("admin_forum_attachments_orphans");
// Oprhans are defined as:
|
Zeile 340 | Zeile 364 |
---|
$form = new Form("index.php?module=forum-attachments&action=delete_orphans", "post");
$table = new Table;
|
$form = new Form("index.php?module=forum-attachments&action=delete_orphans", "post");
$table = new Table;
|
$table->construct_header($form->generate_check_box('checkall', '1', '', array('class' => 'checkall')), array( 'width' => 1));
| $table->construct_header($form->generate_check_box('allbox', '1', '', array('class' => 'checkall')), array( 'width' => 1));
|
$table->construct_header($lang->size_attachments, array('colspan' => 2)); $table->construct_header($lang->reason_orphaned, array('width' => '20%', 'class' => 'align_center')); $table->construct_header($lang->date_uploaded, array("class" => "align_center"));
| $table->construct_header($lang->size_attachments, array('colspan' => 2)); $table->construct_header($lang->reason_orphaned, array('width' => '20%', 'class' => 'align_center')); $table->construct_header($lang->date_uploaded, array("class" => "align_center"));
|
Zeile 429 | Zeile 453 |
---|
LEFT JOIN ".TABLE_PREFIX."posts p ON (p.pid=a.pid) ORDER BY a.aid"); while($attachment = $db->fetch_array($query))
|
LEFT JOIN ".TABLE_PREFIX."posts p ON (p.pid=a.pid) ORDER BY a.aid"); while($attachment = $db->fetch_array($query))
|
{
| {
|
// Check if the attachment exists in the file system if(!file_exists(MYBB_ROOT.$mybb->settings['uploadspath']."/{$attachment['attachname']}")) {
| // Check if the attachment exists in the file system if(!file_exists(MYBB_ROOT.$mybb->settings['uploadspath']."/{$attachment['attachname']}")) {
|
Zeile 484 | Zeile 508 |
---|
{ $plugins->run_hooks("admin_forum_attachments_orphans_step1");
|
{ $plugins->run_hooks("admin_forum_attachments_orphans_step1");
|
| /** * @param string $dir */
|
function scan_attachments_directory($dir="") { global $db, $mybb, $bad_attachments, $attachments_to_check;
| function scan_attachments_directory($dir="") { global $db, $mybb, $bad_attachments, $attachments_to_check;
|
Zeile 529 | Zeile 556 |
---|
if($bad_attachments) { $bad_attachments = @array_merge($bad_attachments, $attachments_to_check);
|
if($bad_attachments) { $bad_attachments = @array_merge($bad_attachments, $attachments_to_check);
|
}
| }
|
else { $bad_attachments = $attachments_to_check;
| else { $bad_attachments = $attachments_to_check;
|
Zeile 622 | Zeile 649 |
---|
}
$errors = array();
|
}
$errors = array();
|
| // Normal users only if($mybb->get_input('user_types', MyBB::INPUT_INT) == 1) { $user_types = 1; } // Guests only elseif($mybb->get_input('user_types', MyBB::INPUT_INT) == -1) { $user_types = -1; $search_sql .= " AND a.uid='0'"; } // Users & Guests else { $user_types = 0; }
|
// Username matching if($mybb->input['username']) { $user = get_user_by_username($mybb->input['username']);
|
// Username matching if($mybb->input['username']) { $user = get_user_by_username($mybb->input['username']);
|
|
|
if(!$user['uid']) {
|
if(!$user['uid']) {
|
$errors[] = $lang->error_invalid_username;
| if($user_types == 1) { $errors[] = $lang->error_invalid_username; } else { // Don't error if we are searching for guests or users & guests $search_sql .= " AND p.username LIKE '%".$db->escape_string_like($mybb->input['username'])."%'"; }
|
} else {
| } else {
|
Zeile 772 | Zeile 825 |
---|
$form = new Form("index.php?module=forum-attachments&action=delete", "post");
$table = new Table;
|
$form = new Form("index.php?module=forum-attachments&action=delete", "post");
$table = new Table;
|
$table->construct_header($form->generate_check_box('checkall', '1', '', array('class' => 'checkall')), array( 'width' => 1));
| $table->construct_header($form->generate_check_box('allbox', '1', '', array('class' => 'checkall')), array( 'width' => 1));
|
$table->construct_header($lang->attachments, array('colspan' => 2)); $table->construct_header($lang->size, array('width' => '10%', 'class' => 'align_center')); $table->construct_header($lang->posted_by, array('width' => '20%', 'class' => 'align_center'));
| $table->construct_header($lang->attachments, array('colspan' => 2)); $table->construct_header($lang->size, array('width' => '10%', 'class' => 'align_center')); $table->construct_header($lang->posted_by, array('width' => '20%', 'class' => 'align_center'));
|
Zeile 840 | Zeile 893 |
---|
$form_container->output_row($lang->name_contains, $lang->name_contains_desc, $form->generate_text_box('filename', $mybb->input['filename'], array('id' => 'filename')), 'filename'); $form_container->output_row($lang->type_contains, "", $form->generate_text_box('mimetype', $mybb->input['mimetype'], array('id' => 'mimetype')), 'mimetype'); $form_container->output_row($lang->forum_is, "", $form->generate_forum_select('forum[]', $mybb->input['forum'], array('multiple' => true, 'size' => 5, 'id' => 'forum')), 'forum');
|
$form_container->output_row($lang->name_contains, $lang->name_contains_desc, $form->generate_text_box('filename', $mybb->input['filename'], array('id' => 'filename')), 'filename'); $form_container->output_row($lang->type_contains, "", $form->generate_text_box('mimetype', $mybb->input['mimetype'], array('id' => 'mimetype')), 'mimetype'); $form_container->output_row($lang->forum_is, "", $form->generate_forum_select('forum[]', $mybb->input['forum'], array('multiple' => true, 'size' => 5, 'id' => 'forum')), 'forum');
|
$form_container->output_row($lang->username_is, "", $form->generate_text_box('username', $mybb->input['username'], array('id' => 'username')), 'username');
| $form_container->output_row($lang->username_is, "", $form->generate_text_box('username', htmlspecialchars_uni($mybb->get_input('username')), array('id' => 'username')), 'username'); $form_container->output_row($lang->poster_is, "", $form->generate_select_box('user_types', array('0' => $lang->poster_is_either, '1' => $lang->poster_is_user, '-1' => $lang->poster_is_guest), $mybb->get_input('user_types', MyBB::INPUT_INT), array('id' => 'guests')), 'user_types');
|
$more_options = array( "less_than" => $lang->more_than,
| $more_options = array( "less_than" => $lang->more_than,
|
Zeile 881 | Zeile 935 |
---|
$page->output_footer(); }
|
$page->output_footer(); }
|
| /** * @param array $attachment * @param DefaultTable $table * @param bool $use_form */
|
function build_attachment_row($attachment, &$table, $use_form=false) {
|
function build_attachment_row($attachment, &$table, $use_form=false) {
|
global $mybb, $form;
| global $mybb, $form, $lang;
|
$attachment['filename'] = htmlspecialchars_uni($attachment['filename']);
// Here we do a bit of detection, we want to automatically check for removal any missing attachments and any not assigned to a post uploaded > 24hours ago
| $attachment['filename'] = htmlspecialchars_uni($attachment['filename']);
// Here we do a bit of detection, we want to automatically check for removal any missing attachments and any not assigned to a post uploaded > 24hours ago
|
Zeile 932 | Zeile 991 |
---|
if($attachment['user_username']) {
|
if($attachment['user_username']) {
|
$attachment['username'] = $attachment['username'];
| $attachment['username'] = $attachment['user_username'];
|
}
|
}
|
$table->construct_cell(build_profile_link($attachment['username'], $attachment['uid'], "_blank"), array("class" => "align_center"));
| $table->construct_cell(build_profile_link(htmlspecialchars_uni($attachment['username']), $attachment['uid'], "_blank"), array("class" => "align_center"));
|
$table->construct_cell("<a href=\"../".get_post_link($attachment['pid'])."\" target=\"_blank\">".htmlspecialchars_uni($attachment['subject'])."</a>", array("class" => "align_center")); $table->construct_cell(my_number_format($attachment['downloads']), array("class" => "align_center")); if($attachment['dateuploaded'] > 0)
| $table->construct_cell("<a href=\"../".get_post_link($attachment['pid'])."\" target=\"_blank\">".htmlspecialchars_uni($attachment['subject'])."</a>", array("class" => "align_center")); $table->construct_cell(my_number_format($attachment['downloads']), array("class" => "align_center")); if($attachment['dateuploaded'] > 0)
|