WordPress.org

Make WordPress Core

Ticket #8822: lj-importer-upgrades.patch

File lj-importer-upgrades.patch, 12.8 KB (added by beaulebens, 7 years ago)

Fixed issue when cleaning up upper-case tags.

  • wp-includes/js/swfupload/handlers.js

     
    285285        }); 
    286286} 
    287287})(jQuery); 
     288 
     289 
     290// Success handler for the import tools instance of the uploader 
     291function importUploadSuccess(fileObj, serverData) { 
     292        // if async-upload returned an error message, place it in the media item div and return 
     293        if ( serverData.match('media-upload-error') ) { 
     294                jQuery('#media-item-' + fileObj.id).html(serverData); 
     295                return; 
     296        } 
     297         
     298        // Remove progress bar 
     299        jQuery('#media-item-' + fileObj.id + ' .progress').remove(); 
     300         
     301        // Add the link to go to the next step, indicating which attachment is the data file 
     302        jQuery('#media-item-' + fileObj.id).append('<a href="' + document.location.href + '&step=1&action=save&attachment_id=' + serverData + '&_wpnonce=' + import_nonce + '&_wp_http_referer=' + escape(document.location.href) + '" class="describe-toggle-on">' + swfuploadL10n.import_continue + '</a>'); 
     303         
     304        // Remove the upload button to prevent them from trying to upload more 
     305        jQuery('#flash-upload-msg').remove() 
     306} 
  • wp-includes/script-loader.php

     
    130130                                'dismiss' => __('Dismiss'), 
    131131                                'crunching' => __('Crunching&hellip;'), 
    132132                                'deleted' => __('Deleted'), 
     133                                'import_continue' => __('Continue Import &raquo;'), 
    133134                                'l10n_print_after' => 'try{convertEntities(swfuploadL10n);}catch(e){};' 
    134135                ) ); 
    135136        } else { 
     
    152153                                'dismiss' => __('Dismiss'), 
    153154                                'crunching' => __('Crunching&hellip;'), 
    154155                                'deleted' => __('Deleted'), 
     156                                'import_continue' => __('Continue Import &raquo;'), 
    155157                                'l10n_print_after' => 'try{convertEntities(swfuploadL10n);}catch(e){};' 
    156158                ) ); 
    157159                $scripts->add( 'swfupload-swfobject', false, array('swfupload') ); 
  • wp-admin/wp-admin.css

     
    29402940        line-height: 1; 
    29412941        padding-left: 25px; 
    29422942} 
     2943 
     2944ol { 
     2945        list-style-type: decimal; 
     2946        margin-left: 2em; 
     2947} 
     2948 No newline at end of file 
  • wp-admin/includes/import.php

     
    5959 * @return array 
    6060 */ 
    6161function wp_import_handle_upload() { 
    62         $overrides = array( 'test_form' => false, 'test_type' => false ); 
    63         $_FILES['import']['name'] .= '.import'; 
    64         $file = wp_handle_upload( $_FILES['import'], $overrides ); 
     62        if (!empty($_FILES['import'])) { 
     63                // Handle upload of file and storage as attachment 
     64                $overrides = array( 'test_form' => false, 'test_type' => false ); 
     65                $_FILES['import']['name'] .= '.import'; 
     66                $file = wp_handle_upload( $_FILES['import'], $overrides ); 
    6567 
    66         if ( isset( $file['error'] ) ) 
    67                 return $file; 
     68                if ( isset( $file['error'] ) ) 
     69                        return $file; 
    6870 
    69         $url = $file['url']; 
    70         $type = $file['type']; 
    71         $file = addslashes( $file['file'] ); 
    72         $filename = basename( $file ); 
     71                $url = $file['url']; 
     72                $type = $file['type']; 
     73                $file = addslashes( $file['file'] ); 
     74                $filename = basename( $file ); 
    7375 
    74         // Construct the object array 
    75         $object = array( 'post_title' => $filename, 
    76                 'post_content' => $url, 
    77                 'post_mime_type' => $type, 
    78                 'guid' => $url 
    79         ); 
     76                // Construct the object array 
     77                $object = array( 'post_title' => $filename, 
     78                        'post_content' => $url, 
     79                        'post_mime_type' => $type, 
     80                        'guid' => $url 
     81                ); 
    8082 
    81         // Save the data 
    82         $id = wp_insert_attachment( $object, $file ); 
    83  
     83                // Save the data 
     84                $id = wp_insert_attachment( $object, $file ); 
     85        } else { 
     86                // Populate details based on ID passed in from async upload 
     87                $id = $_REQUEST['attachment_id']; 
     88                $file = get_attached_file($id); 
     89        } 
    8490        return array( 'file' => $file, 'id' => $id ); 
    8591} 
    8692 
  • wp-admin/includes/template.php

     
    26932693function wp_import_upload_form( $action ) { 
    26942694        $bytes = apply_filters( 'import_upload_size_limit', wp_max_upload_size() ); 
    26952695        $size = wp_convert_bytes_to_hr( $bytes ); 
     2696         
     2697        // If Mac and mod_security, no Flash. :( 
     2698        $flash = true; 
     2699        if ( false !== strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'mac') && apache_mod_loaded('mod_security') ) 
     2700                $flash = false; 
     2701 
     2702        if (isset($_REQUEST['flash']) && '0' == $_REQUEST['flash']) 
     2703                $flash = false; 
     2704 
     2705        $flash = apply_filters('import_flash_uploader', $flash); 
    26962706?> 
     2707 
    26972708<form enctype="multipart/form-data" id="import-upload-form" method="post" action="<?php echo attribute_escape($action) ?>"> 
    2698 <p> 
    2699 <?php wp_nonce_field('import-upload'); ?> 
    2700 <label for="upload"><?php _e( 'Choose a file from your computer:' ); ?></label> (<?php printf( __('Maximum size: %s' ), $size ); ?>) 
    2701 <input type="file" id="upload" name="import" size="25" /> 
    2702 <input type="hidden" name="action" value="save" /> 
    2703 <input type="hidden" name="max_file_size" value="<?php echo $bytes; ?>" /> 
    2704 </p> 
    2705 <p class="submit"> 
    2706 <input type="submit" class="button" value="<?php _e( 'Upload file and import' ); ?>" /> 
    2707 </p> 
     2709 
     2710<?php if ( $flash ) : ?> 
     2711<script type="text/javascript"> 
     2712<!-- 
     2713SWFUpload.onload = function() { 
     2714        post_id = 0; 
     2715        import_nonce = '<?php echo wp_create_nonce('import-upload'); ?>'; 
     2716        swfu = new SWFUpload({ 
     2717                        button_text: '<span class="button"><?php _e('Choose File'); ?></span>', 
     2718                        button_text_style: '.button { text-align: center; font-weight: bold; font-family:"Lucida Grande","Lucida Sans Unicode",Tahoma,Verdana,sans-serif; }', 
     2719                        button_height: "24", 
     2720                        button_width: "132", 
     2721                        button_image_url: '<?php echo includes_url('images/upload.png'); ?>', 
     2722                        button_placeholder_id: "flash-browse-button", 
     2723                        upload_url : "<?php echo attribute_escape( admin_url('async-upload.php') ); ?>", 
     2724                        flash_url : "<?php echo includes_url('js/swfupload/swfupload.swf'); ?>", 
     2725                        file_post_name: "async-upload", 
     2726                        file_types: "<?php echo apply_filters('import_upload_file_glob', '*.*'); ?>", 
     2727                        file_upload_limit: 1, 
     2728                        post_params : { 
     2729                                "auth_cookie" : "<?php if ( is_ssl() ) echo $_COOKIE[SECURE_AUTH_COOKIE]; else echo $_COOKIE[AUTH_COOKIE]; ?>", 
     2730                                "_wpnonce" : "<?php echo wp_create_nonce('media-form'); ?>", 
     2731                                "short" : "true", 
     2732                        }, 
     2733                        file_size_limit : "<?php echo $bytes; ?>b", 
     2734                        file_dialog_start_handler : fileDialogStart, 
     2735                        file_queued_handler : fileQueued, 
     2736                        upload_start_handler : uploadStart, 
     2737                        upload_progress_handler : uploadProgress, 
     2738                        upload_error_handler : uploadError, 
     2739                        upload_success_handler : importUploadSuccess, 
     2740                        upload_complete_handler : uploadComplete, 
     2741                        file_queue_error_handler : fileQueueError, 
     2742                        file_dialog_complete_handler : fileDialogComplete, 
     2743                        swfupload_pre_load_handler: swfuploadPreLoad, 
     2744                        swfupload_load_failed_handler: swfuploadLoadFailed, 
     2745                        custom_settings : { 
     2746                                degraded_element_id : "html-upload-ui", // id of the element displayed when swfupload is unavailable 
     2747                                swfupload_element_id : "flash-upload-ui" // id of the element displayed when swfupload is available 
     2748                        }, 
     2749                        debug: false 
     2750                }); 
     2751}; 
     2752//--> 
     2753</script> 
     2754 
     2755<div id="flash-upload-ui"> 
     2756<?php do_action('pre-flash-import-upload-ui'); ?> 
     2757        <div id="flash-upload-msg"><?php _e( 'Click the button to choose a file to import' ); ?> <div id="flash-browse-button"></div></div> 
     2758        <?php media_upload_flash_bypass() ?> 
     2759        <div id="media-items"></div> 
     2760<?php do_action('post-flash-import-upload-ui'); ?> 
     2761</div> 
     2762 
     2763<?php endif; // $flash ?> 
     2764 
     2765<div id="html-upload-ui"> 
     2766<?php do_action('pre-html-import-upload-ui'); ?> 
     2767        <p id="async-upload-wrap"> 
     2768                <?php wp_nonce_field('import-upload'); ?> 
     2769                <label for="upload"><?php _e( 'Choose a file from your computer:' ); ?></label> (<?php printf( __('Maximum size: %s' ), $size ); ?>) 
     2770                <input type="file" id="upload" name="import" size="25" /> 
     2771                <input type="hidden" name="action" value="save" /> 
     2772                <input type="hidden" name="max_file_size" value="<?php echo $bytes; ?>" /> 
     2773        </p> 
     2774        <?php media_upload_html_bypass() ?> 
     2775        <p class="submit"> 
     2776                <input type="submit" class="button" value="Upload &amp; Import" /> 
     2777        </p> 
     2778         
     2779<?php do_action('post-html-import-upload-ui'); ?> 
     2780</div> 
     2781 
    27082782</form> 
    27092783<?php 
    27102784} 
  • wp-admin/admin.php

     
    9797 
    9898        exit(); 
    9999} else if (isset($_GET['import'])) { 
    100  
     100        wp_enqueue_script('swfupload'); 
     101        wp_enqueue_script('swfupload-swfobject'); 
     102        wp_enqueue_script('swfupload-queue'); 
     103        wp_enqueue_script('swfupload-handlers'); 
     104        wp_admin_css('media'); 
    101105        $importer = $_GET['import']; 
    102106 
    103107        if ( ! current_user_can('import') ) 
  • wp-admin/import/livejournal.php

     
    3535 
    3636        function greet() { 
    3737                echo '<div class="narrow">'; 
    38                 echo '<p>'.__('Howdy! Upload your LiveJournal XML export file and we&#8217;ll import the posts into this blog.').'</p>'; 
    39                 echo '<p>'.__('Choose a LiveJournal XML file to upload, then click Upload file and import.').'</p>'; 
     38                echo '<p>'.__('Howdy! Let\'s get your LiveJournal posts imported into this blog.').'</p>'; 
     39                echo '<ol>'; 
     40                echo '<li>'.__('Use the <a href="http://www.livejournal.com/export.bml" target="_blank">LiveJournal Export Journal tool</a> to export all of your posts. You will need to export each month separately, and save the files to your computer. Use these options when exporting:'); 
     41                        echo '<ul>'; 
     42                        echo '<li>'.__('<strong>Export what:</strong> Journal entries').'</li>'; 
     43                        echo '<li>'.__('<strong>Select month:</strong> yyyy: (each year) - mm: (each month) [LJ only allows you to export one month at a time, so you should go through each month of each year that you have posts for and create a separate export file.]').'</li>'; 
     44                        echo '<li>'.__('<strong>Format:</strong> XML').'</li>'; 
     45                        echo '<li>'.__('<strong>Header:</strong> Checked').'</li>'; 
     46                        echo '<li>'.__('<strong>Encoding:</strong> Unicode (UTF-8)').'</li>'; 
     47                        echo '<li>'.__('<strong>Do not translate between encodings:</strong> Unchecked').'</li>'; 
     48                        echo '<li>'.__('<strong>Fields:</strong> Check All').'</li>'; 
     49                        echo '</ul></li>'; 
     50                echo '<li>'.__('Come back here when you\'re done and upload each file using the form below to import the entries into this blog.').'</li>'; 
     51                echo '</ol>'; 
    4052                wp_import_upload_form("admin.php?import=livejournal&amp;step=1"); 
    4153                echo '</div>'; 
    4254        } 
     
    7082                        $post_content = $this->unhtmlentities($post_content); 
    7183 
    7284                        // Clean up content 
    73                         $post_content = preg_replace('|<(/?[A-Z]+)|e', "'<' . strtolower('$1')", $post_content); 
     85                        $post_content = preg_replace_callback('|<(/?[A-Z]+)|', create_function('$match', 'return "<" . strtolower($match[1]);'), $post_content); 
    7486                        $post_content = str_replace('<br>', '<br />', $post_content); 
    7587                        $post_content = str_replace('<hr>', '<hr />', $post_content); 
     88                        // Links to other LJ users 
     89                        $post_content = preg_replace('|<lj\s+user\s*=\s*["\']([\w-]+)["\']>|', '<a href="http://$1.livejournal.com/" class="lj-user">$1</a>', $post_content); 
     90                        // lj-cut ==> <!--more--> 
     91                        $post_content = str_replace(array('<lj-cut>', '</lj-cut>'), array('<!--more-->', ''), $post_content); 
     92                        // Remove all but the first <!--more--> 
     93                        $first = strpos($post_content, '<!--more-->'); 
     94                        $post_content = str_replace(substr($post_content, $first + 1), str_replace('<!--more-->', '', substr($post_content, $first + 1)), $post_content); 
     95                         
    7696                        $post_content = $wpdb->escape($post_content); 
    7797 
    7898                        $post_author = $current_user->ID; 
     
    106126                                        $comment_content = $this->unhtmlentities($comment_content); 
    107127 
    108128                                        // Clean up content 
    109                                         $comment_content = preg_replace('|<(/?[A-Z]+)|e', "'<' . strtolower('$1')", $comment_content); 
     129                                        $comment_content = preg_replace_callback('|<(/?[A-Z]+)|', create_function('$match', 'return "<" . strtolower($match[1]);'), $comment_content); 
    110130                                        $comment_content = str_replace('<br>', '<br />', $comment_content); 
    111131                                        $comment_content = str_replace('<hr>', '<hr />', $comment_content); 
    112132                                        $comment_content = $wpdb->escape($comment_content); 
  • wp-admin/import/rss.php

     
    118118                echo '<ol>'; 
    119119 
    120120                foreach ($this->posts as $post) { 
    121                         echo "<li>".__('Importing post...'); 
    122  
     121                        echo "<li>"; 
    123122                        extract($post); 
     123                        printf(__('Importing post <em>%s</em>...'), stripslashes($post_title)); 
    124124 
    125125                        if ($post_id = post_exists($post_title, $post_content, $post_date)) { 
    126126                                _e('Post already imported');