Changeset 22768
- Timestamp:
- 11/21/2012 04:02:20 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/admin-ajax.php
r22541 r22768 55 55 'save-widget', 'set-post-thumbnail', 'date_format', 'time_format', 'wp-fullscreen-save-post', 56 56 'wp-remove-post-lock', 'dismiss-wp-pointer', 'upload-attachment', 'get-attachment', 57 'query-attachments', 'save-attachment', 'save-attachment-compat', 57 'query-attachments', 'save-attachment', 'save-attachment-compat', 'send-link-to-editor', 58 'send-attachment-to-editor', 58 59 ); 59 60 -
trunk/wp-admin/includes/ajax-actions.php
r22723 r22768 1908 1908 wp_send_json_success( $attachment ); 1909 1909 } 1910 1911 /** 1912 * Generates the HTML to send an attachment to the editor. 1913 * Backwards compatible with the media_send_to_editor filter and the chain 1914 * of filters that follow. 1915 * 1916 * @since 3.5.0 1917 */ 1918 function wp_ajax_send_attachment_to_editor() { 1919 check_ajax_referer( 'media-send-to-editor', 'nonce' ); 1920 1921 $attachment = stripslashes_deep( $_POST['attachment'] ); 1922 1923 $id = intval( $attachment['id'] ); 1924 1925 if ( ! $post = get_post( $id ) ) 1926 wp_send_json_error(); 1927 1928 if ( ! current_user_can( 'edit_post', $id ) ) 1929 wp_send_json_error(); 1930 1931 if ( 'attachment' != $post->post_type ) 1932 wp_send_json_error(); 1933 1934 $html = isset( $attachment['title'] ) ? $attachment['title'] : ''; 1935 if ( ! empty( $attachment['url'] ) ) { 1936 $rel = ''; 1937 if ( strpos($attachment['url'], 'attachment_id') || get_attachment_link( $id ) == $attachment['url'] ) 1938 $rel = ' rel="attachment wp-att-' . $id . '"'; 1939 $html = '<a href="' . esc_url( $attachment['url'] ) . '"' . $rel . '>' . $html . '</a>'; 1940 } 1941 1942 remove_filter( 'media_send_to_editor', 'image_media_send_to_editor', 10, 3 ); 1943 1944 if ( 'image' === substr( $post->post_mime_type, 0, 5 ) ) { 1945 $url = $attachment['url']; 1946 $align = isset( $attachment['image-align'] ) ? $attachment['image-align'] : 'none'; 1947 $size = isset( $attachment['image-size'] ) ? $attachment['image-size'] : 'medium'; 1948 $alt = isset( $attachment['image-alt'] ) ? $attachment['image-alt'] : ''; 1949 $caption = isset( $attachment['caption'] ) ? $attachment['caption'] : ''; 1950 $title = ''; // We no longer insert title tags into <img> tags, as they are redundant. 1951 $html = get_image_send_to_editor( $id, $caption, $title, $align, $url, (bool) $rel, $size, $alt ); 1952 } 1953 1954 $html = apply_filters( 'media_send_to_editor', $html, $id, $attachment ); 1955 1956 wp_send_json_success( $html ); 1957 } 1958 1959 /** 1960 * Generates the HTML to send a non-image embed link to the editor. 1961 * 1962 * Backwards compatible with the following filters: 1963 * - file_send_to_editor_url 1964 * - audio_send_to_editor_url 1965 * - video_send_to_editor_url 1966 * 1967 * @since 3.5.0 1968 */ 1969 function wp_ajax_send_link_to_editor() { 1970 check_ajax_referer( 'media-send-to-editor', 'nonce' ); 1971 1972 if ( ! $src = stripslashes( $_POST['src'] ) ) 1973 wp_send_json_error(); 1974 1975 if ( ! strpos( $src, '://' ) ) 1976 $src = 'http://' . $src; 1977 1978 if ( ! $src = esc_url_raw( $src ) ) 1979 wp_send_json_error(); 1980 1981 if ( ! $title = trim( stripslashes( $_POST['title'] ) ) ) 1982 $title = wp_basename( $src ); 1983 1984 $html = ''; 1985 if ( $title ) 1986 $html = '<a href="' . esc_url( $src ) . '">' . $title . '</a>'; 1987 1988 // Figure out what filter to run: 1989 $type = 'file'; 1990 if ( ( $ext = preg_replace( '/^.+?\.([^.]+)$/', '$1', $src ) ) && ( $ext_type = wp_ext2type( $ext ) ) 1991 && ( 'audio' == $ext_type || 'video' == $ext_type ) ) 1992 $type = $ext_type; 1993 1994 $html = apply_filters( $type . '_send_to_editor_url', $html, $src, $title ); 1995 1996 wp_send_json_success( $html ); 1997 } -
trunk/wp-admin/js/media-upload.js
r22761 r22768 110 110 111 111 wp.media.string = { 112 // Joins the `props` and `attachment` objects, 113 // outputting the proper object format based on the 114 // attachment's type. 115 props: function( props, attachment ) { 116 var link, linkUrl, size, sizes; 117 118 props = props ? _.clone( props ) : {}; 119 120 if ( attachment && attachment.type ) 121 props.type = attachment.type; 122 123 if ( 'image' === props.type ) { 124 props = _.defaults( props || {}, { 125 align: getUserSetting( 'align', 'none' ), 126 size: getUserSetting( 'imgsize', 'medium' ), 127 url: '', 128 classes: [] 129 }); 130 } 131 132 // All attachment-specific settings follow. 133 if ( ! attachment ) 134 return props; 135 136 link = props.link || getUserSetting( 'urlbutton', 'post' ); 137 if ( 'file' === link ) 138 linkUrl = attachment.url; 139 else if ( 'post' === link ) 140 linkUrl = attachment.link; 141 else if ( 'custom' === link ) 142 linkUrl = props.linkUrl; 143 props.linkUrl = linkUrl || ''; 144 145 // Format properties for images. 146 if ( 'image' === attachment.type ) { 147 props.classes.push( 'wp-image-' + attachment.id ); 148 149 sizes = attachment.sizes; 150 size = sizes && sizes[ props.size ] ? sizes[ props.size ] : attachment; 151 152 _.extend( props, _.pick( attachment, 'align', 'caption' ), { 153 width: size.width, 154 height: size.height, 155 src: size.url, 156 captionId: 'attachment_' + attachment.id 157 }); 158 159 // Format properties for non-images. 160 } else { 161 _.extend( props, { 162 title: attachment.title || attachment.filename, 163 rel: 'attachment wp-att-' + attachment.id 164 }); 165 } 166 167 return props; 168 }, 169 112 170 link: function( props, attachment ) { 113 171 var options; 114 172 115 props = _.defaults( props || {}, { 116 title: '', 117 linkUrl: '' 118 }); 119 120 if ( attachment ) { 121 _.extend( props, { 122 title: attachment.title || attachment.filename, 123 linkUrl: linkToUrl( props, attachment ), 124 rel: 'attachment wp-att-' + attachment.id 125 }); 126 } 173 props = wp.media.string.props( props, attachment ); 127 174 128 175 options = { … … 141 188 142 189 image: function( props, attachment ) { 143 var classes = [], 144 img = {}, 145 options, sizes, size, shortcode, html; 146 147 props = _.defaults( props || {}, { 148 align: getUserSetting( 'align', 'none' ), 149 size: getUserSetting( 'imgsize', 'medium' ), 150 url: '' 151 }); 152 153 if ( attachment ) { 154 classes.push( 'wp-image-' + attachment.id ); 155 156 sizes = attachment.sizes; 157 size = sizes && sizes[ props.size ] ? sizes[ props.size ] : attachment; 158 159 _.extend( props, _.pick( attachment, 'align', 'caption' ), { 160 width: size.width, 161 height: size.height, 162 src: size.url, 163 linkUrl: linkToUrl( props, attachment ), 164 captionId: 'attachment_' + attachment.id 165 }); 166 } 190 var img = {}, 191 options, classes, shortcode, html; 192 193 props = wp.media.string.props( props, attachment ); 194 classes = props.classes || []; 167 195 168 196 img.src = props.url; … … 396 424 attachment = attachment.toJSON(); 397 425 398 // If captions are disabled, clear the caption. 399 if ( ! wp.media.view.settings.captions ) 400 delete attachment.caption; 401 402 if ( 'image' === attachment.type ) 403 this.insert( wp.media.string.image( detail, attachment ) + ' ' ); 404 else 405 this.insert( wp.media.string.link( detail, attachment ) + ' ' ); 426 this.send.attachment( detail, attachment ); 406 427 }, this ); 407 428 }, this ); … … 422 443 }); 423 444 424 this. insert( wp.media.string.link( embed ));445 this.send.link( embed ); 425 446 426 447 } else if ( 'image' === embed.type ) { … … 452 473 }, 453 474 475 send: { 476 attachment: function( props, attachment ) { 477 var caption = attachment.caption, 478 options, html; 479 480 // If captions are disabled, clear the caption. 481 if ( ! wp.media.view.settings.captions ) 482 delete attachment.caption; 483 484 props = wp.media.string.props( props, attachment ); 485 486 options = { 487 id: attachment.id 488 }; 489 490 if ( 'image' === attachment.type ) { 491 html = wp.media.string.image( props ); 492 options['caption'] = caption; 493 494 _.each({ 495 align: 'image-align', 496 size: 'image-size', 497 alt: 'image-alt', 498 linkUrl: 'url' 499 }, function( option, prop ) { 500 if ( props[ prop ] ) 501 options[ option ] = props[ prop ]; 502 }); 503 504 } else { 505 html = wp.media.string.link( props ); 506 options.title = props.title; 507 } 508 509 return media.post( 'send-attachment-to-editor', { 510 nonce: wp.media.view.settings.nonce.sendToEditor, 511 attachment: options, 512 html: html 513 }).done( function( resp ) { 514 wp.media.editor.insert( resp ); 515 }); 516 }, 517 518 link: function( embed ) { 519 return media.post( 'send-link-to-editor', { 520 nonce: wp.media.view.settings.nonce.sendToEditor, 521 src: embed.linkUrl, 522 title: embed.title, 523 html: wp.media.string.link( embed ) 524 }).done( function( resp ) { 525 wp.media.editor.insert( resp ); 526 }); 527 } 528 }, 529 454 530 init: function() { 455 531 $(document.body).on('click', '.insert-media', function( event ) { -
trunk/wp-includes/media.php
r22761 r22768 1329 1329 'mimeTypes' => wp_list_pluck( get_post_mime_types(), 0 ), 1330 1330 'captions' => ! apply_filters( 'disable_captions', '' ), 1331 'nonce' => array( 1332 'sendToEditor' => wp_create_nonce( 'media-send-to-editor' ), 1333 ), 1331 1334 ); 1332 1335
Note: See TracChangeset
for help on using the changeset viewer.