WordPress.org

Make WordPress Core


Ignore:
Timestamp:
11/21/12 16:02:20 (17 months ago)
Author:
koopersmith
Message:

Media: Backwards compatibility for the many send_to_editor filters. props nacin. see #22186, #21390.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/ajax-actions.php

    r22723 r22768  
    19081908    wp_send_json_success( $attachment ); 
    19091909} 
     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 */ 
     1918function 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 */ 
     1969function 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} 
Note: See TracChangeset for help on using the changeset viewer.