__('From Computer'), // handler action suffix => tab text 'type_url' => __('From URL'), 'gallery' => __('Gallery'), 'library' => __('Media Library') ); return apply_filters('media_upload_tabs', $_default_tabs); } /** * {@internal Missing Short Description}} * * @since 2.5.0 * * @param unknown_type $tabs * @return unknown */ function update_gallery_tab($tabs) { global $wpdb; if ( !isset($_REQUEST['post_id']) ) { unset($tabs['gallery']); return $tabs; } $post_id = intval($_REQUEST['post_id']); if ( $post_id ) $attachments = intval( $wpdb->get_var( $wpdb->prepare( "SELECT count(*) FROM $wpdb->posts WHERE post_type = 'attachment' AND post_status != 'trash' AND post_parent = %d", $post_id ) ) ); if ( empty($attachments) ) { unset($tabs['gallery']); return $tabs; } $tabs['gallery'] = sprintf(__('Gallery (%s)'), "$attachments"); return $tabs; } add_filter('media_upload_tabs', 'update_gallery_tab'); /** * {@internal Missing Short Description}} * * @since 2.5.0 */ function the_media_upload_tabs() { global $redir_tab, $is_iphone; $tabs = media_upload_tabs(); if ( $is_iphone ) { unset($tabs['type']); $default = 'type_url'; } else { $default = 'type'; } if ( !empty($tabs) ) { echo "
\n"; } } /** * {@internal Missing Short Description}} * * @since 2.5.0 * * @param unknown_type $id * @param unknown_type $alt * @param unknown_type $title * @param unknown_type $align * @param unknown_type $url * @param unknown_type $rel * @param unknown_type $size * @return unknown */ function get_image_send_to_editor($id, $caption, $title, $align, $url='', $rel = false, $size='medium', $alt = '') { $html = get_image_tag($id, $alt, $title, $align, $size); $rel = $rel ? ' rel="attachment wp-att-' . esc_attr($id).'"' : ''; if ( $url ) $html = '$html"; $html = apply_filters( 'image_send_to_editor', $html, $id, $caption, $title, $align, $url, $size, $alt ); return $html; } /** * {@internal Missing Short Description}} * * @since 2.6.0 * * @param unknown_type $html * @param unknown_type $id * @param unknown_type $alt * @param unknown_type $title * @param unknown_type $align * @param unknown_type $url * @param unknown_type $size * @return unknown */ function image_add_caption( $html, $id, $caption, $title, $align, $url, $size, $alt = '' ) { if ( empty($caption) || apply_filters( 'disable_captions', '' ) ) return $html; $id = ( 0 < (int) $id ) ? 'attachment_' . $id : ''; if ( ! preg_match( '/width="([0-9]+)/', $html, $matches ) ) return $html; $width = $matches[1]; $caption = preg_replace_callback( '/<[a-zA-Z][^<>]+>/', '_cleanup_image_add_caption', $caption ); $caption = str_replace( '"', '"', $caption ); $html = preg_replace( '/(class=["\'][^\'"]*)align(none|left|right|center)\s?/', '$1', $html ); if ( empty($align) ) $align = 'none'; $shcode = '[caption id="' . $id . '" align="align' . $align . '" width="' . $width . '" caption="' . $caption . '"]' . $html . '[/caption]'; return apply_filters( 'image_add_caption_shortcode', $shcode, $html ); } add_filter( 'image_send_to_editor', 'image_add_caption', 20, 8 ); // Private, preg_replace callback used in image_add_caption() function _cleanup_image_add_caption($str) { if ( isset($str[0]) ) return str_replace( '"', "'", $str[0] ); return ''; } /** * {@internal Missing Short Description}} * * @since 2.5.0 * * @param unknown_type $html */ function media_send_to_editor($html) { ?> false )) { $time = current_time('mysql'); if ( $post = get_post($post_id) ) { if ( substr( $post->post_date, 0, 4 ) > 0 ) $time = $post->post_date; } $name = $_FILES[$file_id]['name']; $file = wp_handle_upload($_FILES[$file_id], $overrides, $time); if ( isset($file['error']) ) return new WP_Error( 'upload_error', $file['error'] ); $name_parts = pathinfo($name); $name = trim( substr( $name, 0, -(1 + strlen($name_parts['extension'])) ) ); $url = $file['url']; $type = $file['type']; $file = $file['file']; $title = $name; $content = ''; // use image exif/iptc data for title and caption defaults if possible if ( $image_meta = @wp_read_image_metadata($file) ) { if ( trim( $image_meta['title'] ) && ! is_numeric( sanitize_title( $image_meta['title'] ) ) ) $title = $image_meta['title']; if ( trim( $image_meta['caption'] ) ) $content = $image_meta['caption']; } // Construct the attachment array $attachment = array_merge( array( 'post_mime_type' => $type, 'guid' => $url, 'post_parent' => $post_id, 'post_title' => $title, 'post_content' => $content, ), $post_data ); // This should never be set as it would then overwrite an existing attachment. if ( isset( $attachment['ID'] ) ) unset( $attachment['ID'] ); // Save the data $id = wp_insert_attachment($attachment, $file, $post_id); if ( !is_wp_error($id) ) { wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) ); } return $id; } /** * This handles a sideloaded file in the same way as an uploaded file is handled by {@link media_handle_upload()} * * @since 2.6.0 * * @param array $file_array Array similar to a {@link $_FILES} upload array * @param int $post_id The post ID the media is associated with * @param string $desc Description of the sideloaded file * @param array $post_data allows you to overwrite some of the attachment * @return int|object The ID of the attachment or a WP_Error on failure */ function media_handle_sideload($file_array, $post_id, $desc = null, $post_data = array()) { $overrides = array('test_form'=>false); $file = wp_handle_sideload($file_array, $overrides); if ( isset($file['error']) ) return new WP_Error( 'upload_error', $file['error'] ); $url = $file['url']; $type = $file['type']; $file = $file['file']; $title = preg_replace('/\.[^.]+$/', '', basename($file)); $content = ''; // use image exif/iptc data for title and caption defaults if possible if ( $image_meta = @wp_read_image_metadata($file) ) { if ( trim( $image_meta['title'] ) && ! is_numeric( sanitize_title( $image_meta['title'] ) ) ) $title = $image_meta['title']; if ( trim( $image_meta['caption'] ) ) $content = $image_meta['caption']; } if ( isset( $desc ) ) $title = $desc; // Construct the attachment array $attachment = array_merge( array( 'post_mime_type' => $type, 'guid' => $url, 'post_parent' => $post_id, 'post_title' => $title, 'post_content' => $content, ), $post_data ); // This should never be set as it would then overwrite an existing attachment. if ( isset( $attachment['ID'] ) ) unset( $attachment['ID'] ); // Save the attachment metadata $id = wp_insert_attachment($attachment, $file, $post_id); if ( !is_wp_error($id) ) wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) ); return $id; } /** * {@internal Missing Short Description}} * * Wrap iframe content (produced by $content_func) in a doctype, html head/body * etc any additional function args will be passed to content_func. * * @since 2.5.0 * * @param unknown_type $content_func */ function wp_iframe($content_func /* ... */) { _wp_admin_html_begin(); ?>