WordPress.org

Make WordPress Core

Changeset 3145


Ignore:
Timestamp:
11/18/2005 09:25:47 AM (16 years ago)
Author:
ryan
Message:

Attachment cleanups from skeltoac. fixes #1870

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/admin-functions.php

    r3127 r3145  
    6464        relocate_children($_POST['temp_ID'], $post_ID);
    6565
     66    // Now that we have an ID we can fix any attachment anchor hrefs
     67    fix_attachment_links($post_ID);
     68
    6669    return $post_ID;
    6770}
     
    7376    $new_ID = (int) $new_ID;
    7477    return $wpdb->query("UPDATE $wpdb->posts SET post_parent = $new_ID WHERE post_parent = $old_ID");
     78}
     79
     80// Replace hrefs of attachment anchors with up-to-date permalinks.
     81function fix_attachment_links($post_ID) {
     82    global $wp_rewrite;
     83
     84    // Relevance check.
     85    if ( false == $wp_rewrite->using_permalinks() )
     86        return;
     87
     88    $post = & get_post($post_ID);
     89
     90    $search = "#<a[^>]+rel=('|\")[^'\"]*attachment[^>]*>#ie";
     91
     92    // See if we have any rel="attachment" links
     93    if ( 0 == preg_match_all($search, $post->post_content, $anchor_matches, PREG_PATTERN_ORDER) )
     94        return;
     95
     96    $i = 0;
     97    $search = "# id=(\"|)(\d+)\\1#i";
     98    foreach ( $anchor_matches[0] as $anchor ) {
     99        echo "$search\n$anchor\n";
     100        if ( 0 == preg_match($search, $anchor, $id_matches) )
     101            continue;
     102
     103        $id = $id_matches[2];
     104        $post_search[$i] = $anchor;
     105        $post_replace[$i] = preg_replace("#href=(\"|')[^'\"]*\\1#e", "stripslashes('href=\\1').get_attachment_link($id).stripslashes('\\1')", $anchor);
     106        ++$i;
     107    }
     108
     109    $post->post_content = str_replace($post_search, $post_replace, $post->post_content);
     110
     111    return wp_update_post($post);
    75112}
    76113
     
    140177
    141178    wp_update_post($_POST);
     179
     180    // Now that we have an ID we can fix any attachment anchor hrefs
     181    fix_attachment_links($_POST['ID']);
    142182
    143183    // Meta Stuff
  • trunk/wp-admin/admin-header.php

    r3136 r3145  
    106106    remove_linebreaks : true,
    107107    save_callback : "wp_save_callback",
    108     valid_elements : "-a[href|title|rel],-strong/b,-em/i,-strike,-del,-u,p[class|align],-ol,-ul,-li,br,img[class|src|alt|title|width|height|align],-sub,-sup,-blockquote,-table[border=0|cellspacing|cellpadding|width|height|class|align],tr[class|rowspan|width|height|align|valign],td[dir|class|colspan|rowspan|width|height|align|valign],-div[dir|class|align],-span[class|align],-pre[class],address,-h1[class|align],-h2[class|align],-h3[class|align],-h4[class|align],-h5[class|align],-h6[class|align],hr",
     108    valid_elements : "-a[id|href|title|rel],-strong/b,-em/i,-strike,-del,-u,p[class|align],-ol,-ul,-li,br,img[class|src|alt|title|width|height|align],-sub,-sup,-blockquote,-table[border=0|cellspacing|cellpadding|width|height|class|align],tr[class|rowspan|width|height|align|valign],td[dir|class|colspan|rowspan|width|height|align|valign],-div[dir|class|align],-span[class|align],-pre[class],address,-h1[class|align],-h2[class|align],-h3[class|align],-h4[class|align],-h5[class|align],-h6[class|align],hr",
    109109    plugins : "wordpress,autosave"
    110110    <?php do_action('mce_options'); ?>
  • trunk/wp-admin/inline-uploading.php

    r3126 r3145  
    7878$imagedata['thumb'] = "thumb-$filename";
    7979
    80 add_post_meta($id, 'imagedata', $imagedata);
     80add_post_meta($id, '_wp_attachment_metadata', $imagedata);
    8181
    8282if ( $imagedata['width'] * $imagedata['height'] < 3 * 1024 * 1024 ) {
     
    136136}
    137137
    138 $i = 0;
    139138$uwidth_sum = 0;
    140139$images_html = '';
     
    155154    $images_script .= "thumbnailon = '$__thumbnail_on';\nthumbnailoff = '$__thumbnail_off';\n";
    156155    foreach ( $images as $key => $image ) {
    157         $meta = get_post_meta($image['ID'], 'imagedata', true);
     156        $attachment_ID = $image['ID'];
     157        $meta = get_post_meta($attachment_ID, '_wp_attachment_metadata', true);
    158158        if (!is_array($meta)) {
    159             wp_delete_attachment($image['ID']);
    160             continue;
     159            $meta = get_post_meta($attachment_ID, 'imagedata', true); // Try 1.6 Alpha meta key
     160            if (!is_array($meta)) {
     161                continue;
     162            } else {
     163                add_post_meta($attachment_ID, '_wp_attachment_metadata', $meta);
     164            }
    161165        }
    162166        $image = array_merge($image, $meta);
    163167        if ( ($image['width'] > 128 || $image['height'] > 96) && !empty($image['thumb']) && file_exists(dirname($image['file']).'/'.$image['thumb']) ) {
    164168            $src = str_replace(basename($image['guid']), '', $image['guid']) . $image['thumb'];
    165             $images_script .= "src".$i."a = '$src';\nsrc".$i."b = '".$image['guid']."';\n";
     169            $images_script .= "src".$attachment_ID."a = '$src';\nsrc".$attachment_ID."b = '".$image['guid']."';\n";
    166170            $thumb = 'true';
    167171            $thumbtext = $__thumbnail_on;
     
    176180        $xpadding = (128 - $image['uwidth']) / 2;
    177181        $ypadding = (96 - $image['uheight']) / 2;
    178         $attachment = $image['ID'];
    179         $images_style .= "#target$i img { padding: {$ypadding}px {$xpadding}px; }\n";
    180         $href = get_attachment_link($attachment);
    181         $images_script .= "href".$i."a = '$href';\nhref".$i."b = '{$image['guid']}';\n";
     182        $images_style .= "#target{$attachment_ID} img { padding: {$ypadding}px {$xpadding}px; }\n";
     183        $href = get_attachment_link($attachment_ID);
     184        $images_script .= "href{$attachment_ID}a = '$href';\nhref{$attachment_ID}b = '{$image['guid']}';\n";
    182185        $images_html .= "
    183 <div id='target$i' class='imagewrap left'>
    184     <div id='popup$i' class='popup'>
    185         <a id=\"L$i\" onclick=\"toggleLink($i);return false;\" href=\"javascript:void();\">$__attachment_on</a>
    186         <a id=\"I$i\" onclick=\"if($thumb)toggleImage($i);else alert('$__nothumb');return false;\" href=\"javascript:void();\">$thumbtext</a>
    187         <a onclick=\"return confirm('$__confirmdelete')\" href=\"".basename(__FILE__)."?action=delete&amp;attachment=$attachment&amp;all=$all&amp;start=$start&amp;post=$post\">$__delete</a>
     186<div id='target{$attachment_ID}' class='imagewrap left'>
     187    <div id='popup{$attachment_ID}' class='popup'>
     188        <a id=\"L{$attachment_ID}\" onclick=\"toggleLink({$attachment_ID});return false;\" href=\"javascript:void();\">$__attachment_on</a>
     189        <a id=\"I{$attachment_ID}\" onclick=\"if($thumb)toggleImage({$attachment_ID});else alert('$__nothumb');return false;\" href=\"javascript:void();\">$thumbtext</a>
     190        <a onclick=\"return confirm('$__confirmdelete')\" href=\"".basename(__FILE__)."?action=delete&amp;attachment={$attachment_ID}&amp;all=$all&amp;start=$start&amp;post=$post\">$__delete</a>
    188191        <a onclick=\"popup.style.display='none';return false;\" href=\"javascript:void()\">$__close</a>
    189192    </div>
    190     <a id=\"link$i\" class=\"imagelink\" href=\"$href\" onclick=\"imagePopup($i);return false;\" title=\"{$image['post_title']}\">     
    191         <img id='image$i' src='$src' alt='{$image['post_title']}' $height_width />
     193    <a id=\"{$attachment_ID}\" rel=\"attachment\" class=\"imagelink\" href=\"$href\" onclick=\"imagePopup({$attachment_ID});return false;\" title=\"{$image['post_title']}\">       
     194        <img id=\"image{$attachment_ID}\" src=\"$src\" alt=\"{$attachment_ID}\" $height_width />
    192195    </a>
    193196</div>
    194197";
    195         $i++;
    196198    }
    197199}
     
    243245}
    244246function toggleLink(n) {
    245     o=document.getElementById('link'+n);
     247    o=document.getElementById(n);
    246248    oi=document.getElementById('L'+n);
    247249    if ( oi.innerHTML == attachmenton ) {
  • trunk/wp-includes/comment-functions.php

    r3125 r3145  
    623623
    624624    foreach($post_links_temp[0] as $link_test) :
    625         if ( !in_array($link_test, $pung) && url_to_postid($link_test) != $post_ID) : // If we haven't pung it already and it isn't a link to itself
     625        if ( !in_array($link_test, $pung) && (url_to_postid($link_test) != $post_ID) // If we haven't pung it already and it isn't a link to itself
     626                && !is_local_attachment($link_test) ) : // Also, let's never ping local attachments.
    626627            $test = parse_url($link_test);
    627628            if (isset($test['query']))
     
    754755}
    755756
     757function is_local_attachment($url) {
     758    if ( !strstr($url, get_bloginfo('home') ) )
     759        return false;
     760    if ( strstr($url, get_bloginfo('home') . '/?attachment_id=') )
     761        return true;
     762    if ( $id = url_to_postid($url) ) {
     763        $post = & get_post($id);
     764        if ( 'attachment' == $post->post_status )
     765            return true;
     766    }       
     767    return false;
     768}
    756769
    757770function wp_set_comment_status($comment_id, $comment_status) {
     
    789802}
    790803
    791 
    792804function wp_get_comment_status($comment_id) {
    793805    global $wpdb;
Note: See TracChangeset for help on using the changeset viewer.