| [ XREF Home ] [ Index ] |
PHP Cross Reference of WordPress TrunkProvided by Yoast |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Media Library administration panel. 4 * 5 * @package WordPress 6 * @subpackage Administration 7 */ 8 9 /** WordPress Administration Bootstrap */ 10 require_once ( './admin.php' ); 11 12 if ( !current_user_can('upload_files') ) 13 wp_die( __( 'You do not have permission to upload files.' ) ); 14 15 $wp_list_table = _get_list_table('WP_Media_List_Table'); 16 $pagenum = $wp_list_table->get_pagenum(); 17 18 // Handle bulk actions 19 $doaction = $wp_list_table->current_action(); 20 21 if ( $doaction ) { 22 check_admin_referer('bulk-media'); 23 24 if ( 'delete_all' == $doaction ) { 25 $post_ids = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_type='attachment' AND post_status = 'trash'" ); 26 $doaction = 'delete'; 27 } elseif ( isset( $_REQUEST['media'] ) ) { 28 $post_ids = $_REQUEST['media']; 29 } elseif ( isset( $_REQUEST['ids'] ) ) { 30 $post_ids = explode( ',', $_REQUEST['ids'] ); 31 } 32 33 $location = 'upload.php'; 34 if ( $referer = wp_get_referer() ) { 35 if ( false !== strpos( $referer, 'upload.php' ) ) 36 $location = remove_query_arg( array( 'trashed', 'untrashed', 'deleted', 'message', 'ids', 'posted' ), $referer ); 37 } 38 39 switch ( $doaction ) { 40 case 'find_detached': 41 if ( !current_user_can('edit_posts') ) 42 wp_die( __('You are not allowed to scan for lost attachments.') ); 43 44 $lost = $wpdb->get_col( " 45 SELECT ID FROM $wpdb->posts 46 WHERE post_type = 'attachment' AND post_parent > '0' 47 AND post_parent NOT IN ( 48 SELECT ID FROM $wpdb->posts 49 WHERE post_type NOT IN ( 'attachment', '" . join( "', '", get_post_types( array( 'public' => false ) ) ) . "' ) 50 ) 51 " ); 52 53 $_REQUEST['detached'] = 1; 54 break; 55 case 'attach': 56 $parent_id = (int) $_REQUEST['found_post_id']; 57 if ( !$parent_id ) 58 return; 59 60 $parent = &get_post( $parent_id ); 61 if ( !current_user_can( 'edit_post', $parent_id ) ) 62 wp_die( __( 'You are not allowed to edit this post.' ) ); 63 64 $attach = array(); 65 foreach ( (array) $_REQUEST['media'] as $att_id ) { 66 $att_id = (int) $att_id; 67 68 if ( !current_user_can( 'edit_post', $att_id ) ) 69 continue; 70 71 $attach[] = $att_id; 72 clean_attachment_cache( $att_id ); 73 } 74 75 if ( ! empty( $attach ) ) { 76 $attach = implode( ',', $attach ); 77 $attached = $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_parent = %d WHERE post_type = 'attachment' AND ID IN ( $attach )", $parent_id ) ); 78 } 79 80 if ( isset( $attached ) ) { 81 $location = 'upload.php'; 82 if ( $referer = wp_get_referer() ) { 83 if ( false !== strpos( $referer, 'upload.php' ) ) 84 $location = $referer; 85 } 86 87 $location = add_query_arg( array( 'attached' => $attached ) , $location ); 88 wp_redirect( $location ); 89 exit; 90 } 91 break; 92 case 'trash': 93 foreach ( (array) $post_ids as $post_id ) { 94 if ( !current_user_can( 'delete_post', $post_id ) ) 95 wp_die( __( 'You are not allowed to move this post to the trash.' ) ); 96 97 if ( !wp_trash_post( $post_id ) ) 98 wp_die( __( 'Error in moving to trash...' ) ); 99 } 100 $location = add_query_arg( array( 'trashed' => count( $post_ids ), 'ids' => join( ',', $post_ids ) ), $location ); 101 break; 102 case 'untrash': 103 foreach ( (array) $post_ids as $post_id ) { 104 if ( !current_user_can( 'delete_post', $post_id ) ) 105 wp_die( __( 'You are not allowed to move this post out of the trash.' ) ); 106 107 if ( !wp_untrash_post( $post_id ) ) 108 wp_die( __( 'Error in restoring from trash...' ) ); 109 } 110 $location = add_query_arg( 'untrashed', count( $post_ids ), $location ); 111 break; 112 case 'delete': 113 foreach ( (array) $post_ids as $post_id_del ) { 114 if ( !current_user_can( 'delete_post', $post_id_del ) ) 115 wp_die( __( 'You are not allowed to delete this post.' ) ); 116 117 if ( !wp_delete_attachment( $post_id_del ) ) 118 wp_die( __( 'Error in deleting...' ) ); 119 } 120 $location = add_query_arg( 'deleted', count( $post_ids ), $location ); 121 break; 122 } 123 124 wp_redirect( $location ); 125 exit; 126 } elseif ( ! empty( $_GET['_wp_http_referer'] ) ) { 127 wp_redirect( remove_query_arg( array( '_wp_http_referer', '_wpnonce' ), stripslashes( $_SERVER['REQUEST_URI'] ) ) ); 128 exit; 129 } 130 131 $wp_list_table->prepare_items(); 132 133 $title = __('Media Library'); 134 $parent_file = 'upload.php'; 135 136 wp_enqueue_script( 'wp-ajax-response' ); 137 wp_enqueue_script( 'jquery-ui-draggable' ); 138 wp_enqueue_script( 'media' ); 139 140 add_screen_option( 'per_page', array('label' => _x( 'Media items', 'items per page (screen options)' )) ); 141 142 add_contextual_help( $current_screen, 143 '<p>' . __( 'All the files you’ve uploaded are listed in the Media Library, with the most recent uploads listed first. You can use the <em>Screen Options</em> tab to customize the display of this screen.' ) . '</p>' . 144 '<p>' . __( 'You can narrow the list by file type/status using the text link filters at the top of the screen. You also can refine the list by date using the dropdown menu above the media table.' ) . '</p>' . 145 '<p>' . __( 'Hovering over a row reveals action links: <em>Edit</em>, <em>Delete Permanently</em>, and <em>View</em>. Clicking <em>Edit</em> or on the media file’s name displays a simple screen to edit that individual file’s metadata. Clicking <em>Delete Permanently</em> will delete the file from the media library (as well as from any posts to which it is currently attached). <em>View</em> will take you to the display page for that file.' ) . '</p>' . 146 '<p>' . __( 'If a media file has not been attached to any post, you will see that in the <em>Attached To</em> column, and can click on <em>Attach File</em> to launch a small popup that will allow you to search for a post and attach the file.' ) . '</p>' . 147 '<p><strong>' . __( 'For more information:' ) . '</strong></p>' . 148 '<p>' . __( '<a href="http://codex.wordpress.org/Media_Library_Screen" target="_blank">Documentation on Media Library</a>' ) . '</p>' . 149 '<p>' . __( '<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>' 150 ); 151 152 require_once ('./admin-header.php'); 153 ?> 154 155 <div class="wrap"> 156 <?php screen_icon(); ?> 157 <h2><?php echo esc_html( $title ); ?> <a href="media-new.php" class="add-new-h2"><?php echo esc_html_x('Add New', 'file'); ?></a> <?php 158 if ( isset($_REQUEST['s']) && $_REQUEST['s'] ) 159 printf( '<span class="subtitle">' . __('Search results for “%s”') . '</span>', get_search_query() ); ?> 160 </h2> 161 162 <?php 163 $message = ''; 164 if ( isset($_GET['posted']) && (int) $_GET['posted'] ) { 165 $message = __('Media attachment updated.'); 166 $_SERVER['REQUEST_URI'] = remove_query_arg(array('posted'), $_SERVER['REQUEST_URI']); 167 } 168 169 if ( isset($_GET['attached']) && (int) $_GET['attached'] ) { 170 $attached = (int) $_GET['attached']; 171 $message = sprintf( _n('Reattached %d attachment.', 'Reattached %d attachments.', $attached), $attached ); 172 $_SERVER['REQUEST_URI'] = remove_query_arg(array('attached'), $_SERVER['REQUEST_URI']); 173 } 174 175 if ( isset($_GET['deleted']) && (int) $_GET['deleted'] ) { 176 $message = sprintf( _n( 'Media attachment permanently deleted.', '%d media attachments permanently deleted.', $_GET['deleted'] ), number_format_i18n( $_GET['deleted'] ) ); 177 $_SERVER['REQUEST_URI'] = remove_query_arg(array('deleted'), $_SERVER['REQUEST_URI']); 178 } 179 180 if ( isset($_GET['trashed']) && (int) $_GET['trashed'] ) { 181 $message = sprintf( _n( 'Media attachment moved to the trash.', '%d media attachments moved to the trash.', $_GET['trashed'] ), number_format_i18n( $_GET['trashed'] ) ); 182 $message .= ' <a href="' . esc_url( wp_nonce_url( 'upload.php?doaction=undo&action=untrash&ids='.(isset($_GET['ids']) ? $_GET['ids'] : ''), "bulk-media" ) ) . '">' . __('Undo') . '</a>'; 183 $_SERVER['REQUEST_URI'] = remove_query_arg(array('trashed'), $_SERVER['REQUEST_URI']); 184 } 185 186 if ( isset($_GET['untrashed']) && (int) $_GET['untrashed'] ) { 187 $message = sprintf( _n( 'Media attachment restored from the trash.', '%d media attachments restored from the trash.', $_GET['untrashed'] ), number_format_i18n( $_GET['untrashed'] ) ); 188 $_SERVER['REQUEST_URI'] = remove_query_arg(array('untrashed'), $_SERVER['REQUEST_URI']); 189 } 190 191 $messages[1] = __('Media attachment updated.'); 192 $messages[2] = __('Media permanently deleted.'); 193 $messages[3] = __('Error saving media attachment.'); 194 $messages[4] = __('Media moved to the trash.') . ' <a href="' . esc_url( wp_nonce_url( 'upload.php?doaction=undo&action=untrash&ids='.(isset($_GET['ids']) ? $_GET['ids'] : ''), "bulk-media" ) ) . '">' . __('Undo') . '</a>'; 195 $messages[5] = __('Media restored from the trash.'); 196 197 if ( isset($_GET['message']) && (int) $_GET['message'] ) { 198 $message = $messages[$_GET['message']]; 199 $_SERVER['REQUEST_URI'] = remove_query_arg(array('message'), $_SERVER['REQUEST_URI']); 200 } 201 202 if ( !empty($message) ) { ?> 203 <div id="message" class="updated"><p><?php echo $message; ?></p></div> 204 <?php } ?> 205 206 <?php $wp_list_table->views(); ?> 207 208 <form id="posts-filter" action="" method="get"> 209 210 <?php $wp_list_table->search_box( __( 'Search Media' ), 'media' ); ?> 211 212 <?php $wp_list_table->display(); ?> 213 214 <div id="ajax-response"></div> 215 <?php find_posts_div(); ?> 216 <br class="clear" /> 217 218 </form> 219 </div> 220 221 <?php 222 include ('./admin-footer.php');
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Wed Jun 1 08:30:02 2011 |
Cross-referenced by PHPXref 0.7 Provided by Yoast and awesome WordPress Hosting |