WordPress.org

Make WordPress Core

Ticket #6813: press-this-6-18-08-3pm.diff

File press-this-6-18-08-3pm.diff, 9.5 KB (added by noel, 10 years ago)

(merge arrows fixed) Fixes for unicode/ascii/apostrophe problems. Upgrades to the Photo tab.

  • wp-admin/press-this.php

     
    7979        </head>
    8080        <body class="press-this">
    8181                <div id="message" class="updated fade"><p><strong><?php _e('Your post has been saved.'); ?></strong> <a onclick="window.opener.location.replace(this.href); window.close();" href="<?php echo get_permalink( $post_ID); ?>"><?php _e('View post'); ?></a> | <a href="post.php?action=edit&amp;post=<?php echo $post_ID; ?>" onclick="window.opener.location.replace(this.href); window.close();"><?php _e('Edit post'); ?></a> | <a href="#" onclick="window.close();">Close Window</a></p></div>
     82               
     83                <div id="footer">
     84                <p><?php
     85                do_action('in_admin_footer', '');
     86                $upgrade = apply_filters( 'update_footer', '' );
     87                echo __('Thank you for creating with <a href="http://wordpress.org/">WordPress</a>');
     88                ?></p>
     89                </div>
     90                <?php do_action('admin_footer', ''); ?>
     91               
    8292        </body>
    8393        </html>
    8494        <?php die;
    8595}
    8696
     97
     98function aposfix($text) {
     99        $translation_table[chr(34)] = '&quot;';
     100        $translation_table[chr(38)] = '&';
     101        $translation_table[chr(39)] = '&apos;';
     102        return preg_replace("/&(?![A-Za-z]{0,4}\w{2,3};|#[0-9]{2,3};)/","&amp;" , strtr($text, $translation_table));   
     103}
     104
    87105// Ajax Requests
    88106$title = wp_specialchars(stripslashes($_GET['t']));
    89 $selection = trim(str_replace('\\n', "<br />", wp_specialchars(js_escape($_GET['s']))));
     107
     108$selection = str_replace("\n", "<br />", aposfix( stripslashes($_GET['s']) ) );
    90109$url = clean_url($_GET['u']);
    91110$image = $_GET['i'];
     111
    92112if($_REQUEST['ajax'] == 'thickbox') { ?>
    93         <script type="text/javascript" charset="utf-8">
    94                 jQuery('.cancel').click(function() {
    95                         tb_remove();
    96                 });
    97                
    98                 function image_selector() {
    99                         desc = jQuery('#this_photo_description').val();
    100                         src = jQuery('#this_photo').val();
    101                         pick(src, desc);
    102                         tb_remove();
    103                         return false;
    104                 }
    105                
    106                 jQuery('.select').click(function() {
    107                         image_selector();
    108                 });
    109         </script>
    110113        <h3 id="title"><label for="post_title"><?php _e('Description') ?></label></h3>
    111114        <div class="titlewrap">
    112115                <input id="this_photo_description" name="photo_description" class="text" onkeypress="if(event.keyCode==13) image_selector();" value="<?php echo attribute_escape($title);?>"/>
    113116        </div>
    114117               
    115118        <p><input type="hidden" name="this_photo" value="<?php echo $image; ?>" id="this_photo" />
    116                 <a href="#" class="select" rel="<?php echo $image; ?>"><img src="<?php echo $image; ?>" width="475" alt="Click to insert." title="Click to insert." /></a></p>
     119                <a href="#" class="select"><img src="<?php echo $image; ?>" width="475" alt="Click to insert." title="Click to insert." /></a></p>
    117120       
    118         <p id="options"><a href="#" class="select" rel="<?php echo $image; ?>">Insert Image</a> | <a href="#" class="cancel">Cancel</a></p>
     121        <p id="options"><a href="#" class="select">Insert Image</a> | <a href="#" class="cancel">Cancel</a></p>
    119122<?php die;
    120123}
    121124
     125if($_REQUEST['ajax'] == 'thickbox_url') { ?>
     126        <h3 id="title"><label for="post_title"><?php _e('URL') ?></label></h3>
     127        <div class="titlewrap">
     128                <input id="this_photo" name="this_photo" class="text" onkeypress="if(event.keyCode==13) image_selector();" />
     129        </div>
     130       
     131       
     132        <h3 id="title"><label for="post_title"><?php _e('Description') ?></label></h3>
     133        <div class="titlewrap">
     134                <input id="this_photo_description" name="photo_description" class="text" onkeypress="if(event.keyCode==13) image_selector();" value="<?php echo attribute_escape($title);?>"/>
     135        </div>
     136       
     137        <p id="options"><a href="#" class="select">Insert Image</a> | <a href="#" class="cancel">Cancel</a></p>
     138<?php die;
     139}
    122140
    123141if($_REQUEST['ajax'] == 'video') { ?>
    124142        <h2 id="embededcode"><label for="embed_code"><?php _e('Embed Code') ?></label></h2>
     
    130148
    131149if($_REQUEST['ajax'] == 'photo_images') {
    132150        function get_images_from_uri($uri) {
    133                 if(preg_match('/\.(jpg|png|gif)/', $uri))
     151                if(preg_match('/\.(jpg|png|gif)/', $uri) && !strpos($uri,'blogger.com'))
    134152                        return "'".$uri."'";
    135                        
     153
    136154                $content = wp_remote_fopen($uri);
    137155                if ( false === $content ) return '';
    138156               
     
    163181}
    164182
    165183if($_REQUEST['ajax'] == 'photo_js') { ?>
    166        
    167                         var last = null
     184
     185                        tb_init('a.thickbox, area.thickbox, input.thickbox'); //pass where to apply thickbox
    168186                       
     187                        function image_selector() {
     188                                desc = jQuery('#this_photo_description').val();
     189                                src = jQuery('#this_photo').val();
     190                                pick(src, desc);
     191                                tb_remove();
     192                                return false;
     193                        }
     194                       
     195                        jQuery(document).ready(function() {
     196                                jQuery('#this_photo').focus();
     197
     198                                jQuery('.cancel').click(function() {
     199                                        tb_remove();
     200                                });
     201                               
     202                                jQuery('.select').click(function() {
     203                                        image_selector();
     204                                });
     205                               
     206                                jQuery('#photo_add_url').attr('href', '?ajax=thickbox_url&height=200&width=500');
     207                               
     208                        });
     209                       
     210                       
    169211                        function pick(img, desc) {
    170212                                if (img) {
    171213                                        length = jQuery('.photolist input').length;
     
    173215                                        jQuery('.photolist').append('<input name="photo_src[' + length + ']" value="' + img +'" type="hidden"/>');
    174216                                        jQuery('.photolist').append('<input name="photo_description[' + length + ']" value="' + desc +'" type="hidden"/>');
    175217                                        append_editor('<img src="' + img +'" alt="' + desc + '" />'); }
     218                                        tinyMCE.activeEditor.resizeToContent();
    176219                                return false;
    177220                        }
    178221
     222                        var last = null
    179223                        var my_src, img, img_tag, aspect, w, h, skip, i, strtoappend = "";
    180                        
    181224                        var my_src = eval(
    182225                        jQuery.ajax({
    183226                                type: "GET",
     
    189232                                }).responseText);
    190233
    191234                        for (i = 0; i < my_src.length; i++) {
    192                                 img = new Image();
    193                                 img.src = my_src[i];
    194                                 img_attr = 'id="img' + i;
    195                                 skip = false;
     235                                img = new Image(); img.src = my_src[i]; img_attr = 'id="img' + i; skip = false;
    196236
    197237                                if (img.width && img.height) {
    198                                         if (img.width * img.height < 2500) skip = true;
     238                                        if (img.width * img.height < 2500)
     239                                                skip = true;
    199240                                        aspect = img.width / img.height;
    200241                                        scale = (aspect > 1) ? (75 / img.width) : (75 / img.height);
    201242                                       
     
    212253                                if (!skip) strtoappend += '<a href="?ajax=thickbox&amp;i=' + img.src + '&amp;u=<?php echo $url; ?>&amp;height=400&amp;width=500" title="" class="thickbox"><img src="' + img.src + '" ' + img_attr + '/></a>';
    213254
    214255                        }
    215 
    216256                        jQuery('#img_container').html(strtoappend);
    217257
    218                         tb_init('a.thickbox, area.thickbox, input.thickbox'); //pass where to apply thickbox
    219 
    220258<?php die; }
    221259
    222260if($_REQUEST['ajax'] == 'photo') { ?>
    223261                <div class="photolist"></div>
    224                 <small><?php _e('Click images to select:') ?></small>
     262
     263                <small id="photo_directions"><?php _e('Click images to select:') ?> <span><a href="#" id="photo_add_url" class="thickbox"><?php _e('Add from URL') ?> +</a></span></small>
     264
    225265                <div class="titlewrap">
    226266                        <div id="img_container"></div>
    227267                </div>
     
    323363                if(tinyMCE.activeEditor) tinyMCE.execCommand('mceInsertContent' ,false, text);
    324364        }
    325365        function set_title(title) { jQuery("#content_type").text(title); }
    326         function reset_height() {
    327                 tinyMCE.height = '170px';
    328         }
     366
    329367        function show(tab_name) {
    330368                jQuery('body').removeClass('video_split');
    331369                jQuery('#extra_fields').hide();
    332370                switch(tab_name) {
    333371                        case 'text' :
    334                                 reset_height();
    335                                 jQuery('.editor-container').show();
    336                                 jQuery('#content_type').show();
    337372                                set_menu('text');
    338                                 set_title('<?php _e('Text') ?>');
     373                                set_title('<?php _e('Post') ?>');
    339374
    340375                                return false;
    341376                        break;
    342377                        case 'quote' :
    343                                 reset_height();
    344                                 jQuery('.editor-container').show();
    345                                 jQuery('#content_type').show();
    346378                                set_menu('quote');
    347379                                set_title('<?php _e('Quote') ?>');
    348                                 set_editor("<blockquote><p><?php echo $selection; ?> </p><p><cite><a href='<?php echo $url; ?>'><?php echo $title; ?></a></cite> </p></blockquote>");
    349 
     380                                set_editor("<blockquote><p><?php echo $selection; ?> </p><p><cite><a href='<?php echo $url; ?>'><?php echo $title; ?> </a> </cite> </p></blockquote>");
    350381                                return false;
    351382                        break;
    352383                        case 'video' :
    353                                 reset_height();
    354                                 jQuery('.editor-container').show();
    355                                 jQuery('#content_type').show();
     384
    356385                                set_menu('video');
    357386                                set_title('<?php _e('Caption') ?>');
    358387                               
    359388                                jQuery('#extra_fields').show();
    360389                                jQuery('body').addClass('video_split');
    361                        
    362                                
    363390                                jQuery('#extra_fields').load('<?php echo clean_url($_SERVER['PHP_SELF']); ?>', { ajax: 'video', s: '<?php echo attribute_escape($selection); ?>'}, function() {
    364391                                       
    365392                                        <?php
     
    377404                                                $content = $selection;
    378405                                        } ?>
    379406                                        jQuery('#embed_code').prepend('<?php echo htmlentities($content); ?>');
     407                                       
    380408                                        set_editor("<?php echo $title; ?>");
    381                                        
    382409                                });
    383 
    384410                               
    385411                                return false;
    386412                        break;
    387413                       
    388414                        case 'photo' :
    389                                 reset_height();
    390415                                set_menu('photo');
    391416                                set_title('Post');
    392417                                <?php if($selection) { ?>
  • wp-admin/css/press-this.css

     
    449449        text-decoration: none;
    450450        padding-bottom: 2px;
    451451}
     452
     453#photo_directions {
     454margin-top: .25em;
     455display: block;
     456position: relative;
     457}
     458#photo_directions span {
     459display: block;
     460position: absolute;
     461top: 0;
     462right: 3px;
     463}
    452464#photo_saving {
    453465margin-bottom: 8px;
    454466}
     
    457469margin-left: 10px;
    458470margin-bottom: 1em;
    459471display: block;
    460 }
    461  No newline at end of file
     472}
     473
     474#footer {
     475        height: 65px;
     476        display: block;
     477        width: 640px;
     478        padding: 10px 0 0 60px;
     479        margin: 0;
     480        position: absolute;
     481        bottom: 0;
     482        font-size: 12px;
     483}
     484
     485#footer p {
     486        margin: 0;
     487        padding: 7px 0;
     488}
     489
     490#footer p a {
     491        text-decoration: none;
     492}
     493
     494#footer p a:hover {
     495        text-decoration: underline;