X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/7688c6ba71852cd89123b62b2d57683535e4702a..9c40b4d36daed9e28e48a5fe9205c32557195a4b:/wp-admin/upload.php diff --git a/wp-admin/upload.php b/wp-admin/upload.php index bfbd9fc6..61e1d16e 100644 --- a/wp-admin/upload.php +++ b/wp-admin/upload.php @@ -1,135 +1,417 @@ get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_type = 'attachment'"); -$post_atts = 0; - -if ( $pid ) { - // 0 => tab display name, 1 => required cap, 2 => function that produces tab content, 3 => total number objects OR array(total, objects per page), 4 => add_query_args - $wp_upload_tabs['upload'] = array(__('Upload'), 'upload_files', 'wp_upload_tab_upload', 0); - if ( $all_atts && $post_atts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_type = 'attachment' AND post_parent = '$post_id'") ) - $wp_upload_tabs['browse'] = array(__('Browse'), 'upload_files', "wp_upload_tab_browse", $action ? 0 : $post_atts); - if ( $post_atts < $all_atts ) - $wp_upload_tabs['browse-all'] = array(__('Browse All'), 'upload_files', 'wp_upload_tab_browse', $action ? 0 : $all_atts); -} else - $wp_upload_tabs['browse-all'] = array(__('Browse All'), 'upload_files', 'wp_upload_tab_browse', $action ? 0 : $all_atts); - - $wp_upload_tabs = array_merge($wp_upload_tabs, apply_filters( 'wp_upload_tabs', array() )); - -if ( !is_callable($wp_upload_tabs[$tab][2]) ) { - $to_tab = isset($wp_upload_tabs['upload']) ? 'upload' : 'browse-all'; - wp_redirect( add_query_arg( 'tab', $to_tab ) ); - exit; +if ( isset($_GET['find_detached'] ) ) { + check_admin_referer('bulk-media'); + + if ( ! current_user_can('edit_posts') ) + wp_die( __('You are not allowed to scan for lost attachments.') ); + + $all_posts = $wpdb->get_col("SELECT ID FROM $wpdb->posts WHERE post_type = 'post' OR post_type = 'page'"); + $all_att = $wpdb->get_results("SELECT ID, post_parent FROM $wpdb->posts WHERE post_type = 'attachment'"); + + $lost = array(); + foreach ( (array) $all_att as $att ) { + if ( $att->post_parent > 0 && ! in_array($att->post_parent, $all_posts) ) + $lost[] = $att->ID; + } + $_GET['detached'] = 1; + +} elseif ( isset($_GET['found_post_id']) && isset($_GET['media']) ) { + check_admin_referer('bulk-media'); + + if ( ! ( $parent_id = (int) $_GET['found_post_id'] ) ) + return; + + $parent = &get_post($parent_id); + if ( !current_user_can('edit_post', $parent_id) ) + wp_die( __('You are not allowed to edit this post.') ); + + $attach = array(); + foreach( (array) $_GET['media'] as $att_id ) { + $att_id = (int) $att_id; + + if ( !current_user_can('edit_post', $att_id) ) + continue; + + $attach[] = $att_id; + } + + if ( ! empty($attach) ) { + $attach = implode(',', $attach); + $attached = $wpdb->query( $wpdb->prepare("UPDATE $wpdb->posts SET post_parent = %d WHERE post_type = 'attachment' AND ID IN ($attach)", $parent_id) ); + } + + if ( isset($attached) ) { + $location = 'upload.php'; + if ( $referer = wp_get_referer() ) { + if ( false !== strpos($referer, 'upload.php') ) + $location = $referer; + } + + $location = add_query_arg( array( 'detached' => 1, 'attached' => $attached ) , $location ); + wp_redirect($location); + exit; + } + +} elseif ( isset($_GET['action']) && isset($_GET['media']) && ( -1 != $_GET['action'] || -1 != $_GET['action2'] ) ) { + check_admin_referer('bulk-media'); + $doaction = ( -1 != $_GET['action'] ) ? $_GET['action'] : $_GET['action2']; + + if ( 'delete' == $doaction ) { + foreach( (array) $_GET['media'] as $post_id_del ) { + $post_del = & get_post($post_id_del); + + if ( !current_user_can('delete_post', $post_id_del) ) + wp_die( __('You are not allowed to delete this post.') ); + + if ( $post_del->post_type == 'attachment' ) + if ( ! wp_delete_attachment($post_id_del) ) + wp_die( __('Error in deleting...') ); + } + + $location = 'upload.php'; + if ( $referer = wp_get_referer() ) { + if ( false !== strpos($referer, 'upload.php') ) + $location = $referer; + } + + $location = add_query_arg('message', 2, $location); + $location = remove_query_arg('posted', $location); + wp_redirect($location); + exit; + } +} elseif ( isset($_GET['_wp_http_referer']) && ! empty($_GET['_wp_http_referer']) ) { + wp_redirect( remove_query_arg( array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI']) ) ); + exit; } -foreach ( $wp_upload_tabs as $t => $tab_array ) { - if ( !current_user_can( $tab_array[1] ) ) { - unset($wp_upload_tabs[$t]); - if ( $tab == $t ) - wp_die(__("You are not allowed to be here")); +$title = __('Media Library'); +$parent_file = 'upload.php'; + +if ( ! isset( $_GET['paged'] ) || $_GET['paged'] < 1 ) + $_GET['paged'] = 1; + +if ( isset($_GET['detached']) ) { + + if ( !empty($lost) ) { + $start = ( $_GET['paged'] - 1 ) * 50; + $page_links_total = ceil(count($lost) / 50); + $lost = implode(',', $lost); + + $orphans = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE post_type = 'attachment' AND ID IN ($lost) LIMIT $start, 50" ); + } else { + $start = ( $_GET['paged'] - 1 ) * 25; + $orphans = $wpdb->get_results( "SELECT SQL_CALC_FOUND_ROWS * FROM $wpdb->posts WHERE post_type = 'attachment' AND post_parent < 1 LIMIT $start, 25" ); + $page_links_total = ceil($wpdb->get_var( "SELECT FOUND_ROWS()" ) / 25); } + + $post_mime_types = array( + 'image' => array(__('Images'), __('Manage Images'), _n_noop('Image (%s)', 'Images (%s)')), + 'audio' => array(__('Audio'), __('Manage Audio'), _n_noop('Audio (%s)', 'Audio (%s)')), + 'video' => array(__('Video'), __('Manage Video'), _n_noop('Video (%s)', 'Video (%s)')), + ); + $post_mime_types = apply_filters('post_mime_types', $post_mime_types); + + $avail_post_mime_types = get_available_post_mime_types('attachment'); + + if ( isset($_GET['post_mime_type']) && !array_intersect( (array) $_GET['post_mime_type'], array_keys($post_mime_types) ) ) + unset($_GET['post_mime_type']); + +} else { + list($post_mime_types, $avail_post_mime_types) = wp_edit_attachments_query(); } -if ( 'inline' == $style ) : ?> - - > - - -<?php bloginfo('name') ?> › <?php _e('Uploads'); ?> — WordPress - - - - - +wp_enqueue_script('media'); +require_once('admin-header.php'); ?> + -
-

+ + + +
+ +

' . __('Search results for “%s”') . '', esc_html( get_search_query() ) ); ?> +

+ \n"; -foreach ( $wp_upload_tabs as $t => $tab_array ) { // We've already done the current_user_can check - $href = add_query_arg( array('tab' => $t, 'ID' => '', 'action' => '', 'paged' => '') ); - if ( isset($tab_array[4]) && is_array($tab_array[4]) ) - $href = add_query_arg( $tab_array[4], $href ); - $_href = clean_url( $href); - $page_links = ''; - $class = 'upload-tab alignleft'; - if ( $tab == $t ) { - $class .= ' current'; - if ( $tab_array[3] ) { - if ( is_array($tab_array[3]) ) { - $total = $tab_array[3][0]; - $per = $tab_array[3][1]; - } else { - $total = $tab_array[3]; - $per = 10; - } - $page_links = paginate_links( array( - 'base' => add_query_arg( 'paged', '%#%' ), - 'format' => '', - 'total' => ceil($total / $per), - 'current' => $paged ? $paged : 1, - 'prev_text' => '«', - 'next_text' => '»' - )); - if ( $page_links ) - $page_links = ": $page_links"; - } - } +if ( isset($message) ) { ?> +

+ + +\n\n"; +$class = isset($_GET['detached']) ? ' class="current"' : ''; +$type_links[] = '
  • ' . __('Unattached') . ''; -echo "
    \n"; +echo implode( " |
  • \n", $type_links) . ''; +unset($type_links); +?> + -call_user_func( $wp_upload_tabs[$tab][2] ); +
    + +
    -echo "
    \n"; +
    +
    +max_num_pages; -if ( 'inline' != $style ) : - echo "
    "; - include_once('admin-footer.php'); -else : ?> - +$page_links = paginate_links( array( + 'base' => add_query_arg( 'paged', '%#%' ), + 'format' => '', + 'prev_text' => __('«'), + 'next_text' => __('»'), + 'total' => $page_links_total, + 'current' => $_GET['paged'] +)); - - +if ( $page_links ) : ?> +
    ' . __( 'Displaying %s–%s of %s' ) . '%s', + number_format_i18n( ( $_GET['paged'] - 1 ) * $wp_query->query_vars['posts_per_page'] + 1 ), + number_format_i18n( min( $_GET['paged'] * $wp_query->query_vars['posts_per_page'], $wp_query->found_posts ) ), + number_format_i18n( $wp_query->found_posts ), + $page_links +); echo $page_links_text; ?>
    + +
    + + + + +posts WHERE post_type = 'attachment' ORDER BY post_date DESC"; + + $arc_result = $wpdb->get_results( $arc_query ); + + $month_count = count($arc_result); + + if ( $month_count && !( 1 == $month_count && 0 == $arc_result[0]->mmonth ) ) : ?> + + + + + + + + + + + +
    + +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + +ID) ); +?> + + + + + + + +post_date && 'date' == $column_name ) { + $t_time = $h_time = __('Unpublished'); + } else { + $t_time = get_the_time(__('Y/m/d g:i:s A')); + $m_time = $post->post_date; + $time = get_post_time( 'G', true ); + if ( ( abs($t_diff = time() - $time) ) < 86400 ) { + if ( $t_diff < 0 ) + $h_time = sprintf( __('%s from now'), human_time_diff( $time ) ); + else + $h_time = sprintf( __('%s ago'), human_time_diff( $time ) ); + } else { + $h_time = mysql2date(__('Y/m/d'), $m_time); + } + } ?> + + + + + + +
    ID, array(80, 60), true ) ) { ?> + +
    + ID))); ?> + +
    + ID) ) + $actions['edit'] = '' . __('Edit') . ''; + if ( current_user_can('delete_post', $post->ID) ) + $actions['delete'] = "ID) . "' onclick=\"if ( confirm('" . esc_js(sprintf( ('draft' == $post->post_status) ? __("You are about to delete this attachment '%s'\n 'Cancel' to stop, 'OK' to delete.") : __("You are about to delete this attachment '%s'\n 'Cancel' to stop, 'OK' to delete."), $post->post_title )) . "') ) { return true;}return false;\">" . __('Delete') . ""; + $actions['view'] = '' . __('View') . ''; + if ( current_user_can('edit_post', $post->ID) ) + $actions['attach'] = ''.__('Attach').''; + $actions = apply_filters( 'media_row_actions', $actions, $post ); + $action_count = count($actions); + $i = 0; + foreach ( $actions as $action => $link ) { + ++$i; + ( $i == $action_count ) ? $sep = '' : $sep = ' | '; + echo "$link$sep"; + } ?> +
    post_author); echo $author->display_name; ?>
    + + + +
    + +
    + +$page_links_text
    "; +?> + +
    + + +
    + +
    + + +
    + + + +