WordPress.org

Make WordPress Core

Ticket #15034: dotclear-importer-0.5.patch

File dotclear-importer-0.5.patch, 8.3 KB (added by briancolinger, 4 years ago)
  • dotclear-importer.php

    diff -ruN dotclear-importer/dotclear-importer.php dotclear-importer.patched//dotclear-importer.php
    old new  
    129129                $dbprefix = get_option('dcdbprefix'); 
    130130 
    131131                // Get Categories 
    132                 return $dcdb->get_results('SELECT * FROM '.$dbprefix.'categorie', ARRAY_A); 
     132                return $dcdb->get_results('SELECT * FROM '.$dbprefix.'category', ARRAY_A); 
    133133        } 
    134134 
    135135        function get_dc_users() 
     
    141141                $dbprefix = get_option('dcdbprefix'); 
    142142 
    143143                // Get Users 
    144  
    145144                return $dcdb->get_results('SELECT * FROM '.$dbprefix.'user', ARRAY_A); 
    146145        } 
    147146 
     
    153152                $dbprefix = get_option('dcdbprefix'); 
    154153 
    155154                // Get Posts 
    156                 return $dcdb->get_results('SELECT '.$dbprefix.'post.*, '.$dbprefix.'categorie.cat_libelle_url AS post_cat_name 
    157                                                 FROM '.$dbprefix.'post INNER JOIN '.$dbprefix.'categorie 
    158                                                 ON '.$dbprefix.'post.cat_id = '.$dbprefix.'categorie.cat_id', ARRAY_A); 
     155                return $dcdb->get_results('SELECT '.$dbprefix.'post.* FROM '.$dbprefix.'post', ARRAY_A); 
    159156        } 
    160157 
    161158        function get_dc_comments() 
     
    177174                set_magic_quotes_runtime(0); 
    178175                $dbprefix = get_option('dcdbprefix'); 
    179176 
    180                 return $dcdb->get_results('SELECT * FROM '.$dbprefix.'link ORDER BY position', ARRAY_A); 
     177                return $dcdb->get_results('SELECT * FROM '.$dbprefix.'link ORDER BY link_position', ARRAY_A); 
    181178        } 
    182179 
    183180        function cat2wp($categories='') 
     
    194191                                extract($category); 
    195192 
    196193                                // Make Nice Variables 
    197                                 $name = $wpdb->escape($cat_libelle_url); 
    198                                 $title = $wpdb->escape(csc ($cat_libelle)); 
     194                                $name = $wpdb->escape($cat_url); 
     195                                $title = $wpdb->escape(csc ($cat_title)); 
    199196                                $desc = $wpdb->escape(csc ($cat_desc)); 
    200197 
    201198                                if ($cinfo = category_exists($name)) { 
     
    223220 
    224221                // Midnight Mojo 
    225222                if (is_array($users)) { 
    226                         echo '<p>'.__('Importing Users...', 'dotclear-importer').'<br /><br /></p>'; 
     223                        echo '<p>'.__('Importing Users...', 'dotclear-importer').'</p>'; 
     224                        echo '<p>'.__('(  if you see any error (WP_Error): maybe you have a conflict with your current users from your wordpress and your imported users from dotclear. )', 'dotclear-importer').'<br /><br /></p>'; 
    227225                        foreach ($users as $user) { 
    228226                                $count++; 
    229227                                extract($user); 
     
    292290                $dcposts2wpposts = array(); 
    293291                $cats = array(); 
    294292 
     293                foreach($this->get_dc_cats() as $buffer) { 
     294                        $categories[$buffer["cat_id"]] = $buffer["cat_title"]; 
     295                } 
     296 
    295297                // Do the Magic 
    296298                if (is_array($posts)) { 
    297299                        echo '<p>'.__('Importing Posts...', 'dotclear-importer').'<br /><br /></p>'; 
     
    308310                                $uinfo = ( get_userdatabylogin( $user_id ) ) ? get_userdatabylogin( $user_id ) : 1; 
    309311                                $authorid = ( is_object( $uinfo ) ) ? $uinfo->ID : $uinfo ; 
    310312 
    311                                 $Title = $wpdb->escape(csc ($post_titre)); 
     313                                $Title = $wpdb->escape(csc ($post_title)); 
    312314                                $post_content = textconv ($post_content); 
    313315                                $post_excerpt = ""; 
    314316                                if ($post_chapo != "") { 
     
    320322                                $post_status = $stattrans[$post_pub]; 
    321323 
    322324                                // Import Post data into WordPress 
    323  
    324325                                if ($pinfo = post_exists($Title,$post_content)) { 
    325326                                        $ret_id = wp_insert_post(array( 
    326327                                                        'ID'                    => $pinfo, 
     
    359360                                        if ( is_wp_error( $ret_id ) ) 
    360361                                                return $ret_id; 
    361362                                } 
     363 
     364                                // print "Dotclear($post_id) => Wordpress($ret_id)<br/>"; 
    362365                                $dcposts2wpposts[$post_id] = $ret_id; 
    363366 
    364367                                // Make Post-to-Category associations 
    365368                                $cats = array(); 
    366                                 $category1 = get_category_by_slug($post_cat_name); 
     369                                $category1 = get_category_by_slug($categories[$cat_id]); 
    367370                                $category1 = $category1->term_id; 
    368371 
    369372                                if ($cat1 = $category1) { $cats[1] = $cat1; } 
     
    372375                        } 
    373376                } 
    374377                // Store ID translation for later use 
    375                 add_option('dcposts2wpposts',$dcposts2wpposts); 
     378                // add_option('dcposts2wpposts', $dcposts2wpposts); // after storing, all datas are altered  ôO 
     379                                                                    // bug into add_option ?!! 
    376380 
    377381                echo '<p>'.sprintf(__('Done! <strong>%1$s</strong> posts imported.', 'dotclear-importer'), $count).'<br /><br /></p>'; 
    378                 return true; 
     382 
     383                return $dcposts2wpposts; 
    379384        } 
    380385 
    381         function comments2wp($comments='') { 
     386        function comments2wp($comments='', $linker) { 
    382387                // General Housekeeping 
    383388                global $wpdb; 
    384389                $count = 0; 
    385390                $dccm2wpcm = array(); 
    386                 $postarr = get_option('dcposts2wpposts'); 
     391 
     392                //$postarr = get_option('dcposts2wpposts'); // after storing, all datas are altered ôO 
     393                                                            // bug into add_option ?!! 
     394                $postarr = $linker; 
    387395 
    388396                // Magic Mojo 
    389397                if (is_array($comments)) { 
     
    395403                                // WordPressify Data 
    396404                                $comment_ID = (int) ltrim($comment_id, '0'); 
    397405                                $comment_post_ID = (int) $postarr[$post_id]; 
    398                                 $comment_approved = $comment_pub; 
    399                                 $name = $wpdb->escape(csc ($comment_auteur)); 
     406                                $comment_approved = ($comment_status == 1) ? 1 : 0; 
     407                                $name = $wpdb->escape(csc ($comment_author)); 
    400408                                $email = $wpdb->escape($comment_email); 
    401409                                $web = "http://".$wpdb->escape($comment_site); 
    402410                                $message = $wpdb->escape(textconv ($comment_content)); 
     
    449457                                $count++; 
    450458                                extract($link); 
    451459 
    452                                 if ($title != "") { 
    453                                         if ($cinfo = term_exists(csc ($title), 'link_category')) { 
    454                                                 $category = $cinfo['term_id']; 
    455                                         } else { 
    456                                                 $category = wp_insert_term($wpdb->escape (csc ($title)), 'link_category'); 
    457                                                 $category = $category['term_id']; 
    458                                         } 
    459                                 } else { 
    460                                         $linkname = $wpdb->escape(csc ($label)); 
    461                                         $description = $wpdb->escape(csc ($title)); 
     460                                $linkname = $wpdb->escape(csc ($link_title)); 
     461                                $description = $wpdb->escape(csc ($link_desc)); 
    462462 
    463                                         if ($linfo = link_exists($linkname)) { 
    464                                                 $ret_id = wp_insert_link(array( 
    465                                                                         'link_id'               => $linfo, 
    466                                                                         'link_url'              => $href, 
    467                                                                         'link_name'             => $linkname, 
    468                                                                         'link_category'         => $category, 
    469                                                                         'link_description'      => $description) 
    470                                                                         ); 
    471                                         } else { 
    472                                                 $ret_id = wp_insert_link(array( 
    473                                                                         'link_url'              => $url, 
    474                                                                         'link_name'             => $linkname, 
    475                                                                         'link_category'         => $category, 
    476                                                                         'link_description'      => $description) 
    477                                                                         ); 
    478                                         } 
    479                                         $dclinks2wplinks[$link_id] = $ret_id; 
     463                                if ( ($linfo = link_exists($linkname)) == NULL ) { 
     464                                        $ret_id = wp_insert_link(array( 
     465                                                                'link_url'              => $link_href, 
     466                                                                'link_name'             => $link_title, 
     467                                                                'link_description'      => $link_desc 
     468                                                                )); 
     469                                } else { 
     470                                        $ret_id = link_exists($linkname); 
    480471                                } 
     472                                $dclinks2wplinks[$link_id] = $ret_id; 
    481473                        } 
    482474                        add_option('dclinks2wplinks',$dclinks2wplinks); 
    483475                        echo '<p>'; 
     
    511503 
    512504                echo '<form action="admin.php?import=dotclear&amp;step=3" method="post">'; 
    513505                wp_nonce_field('import-dotclear'); 
    514                 printf('<p class="submit"><input type="submit" name="submit" class="button" value="%s" /></p>', esc_attr__('Import Posts', 'dotclear-importer')); 
     506                printf('<p class="submit"><input type="submit" name="submit" class="button" value="%s" /></p>', esc_attr__('Import Posts and Comments', 'dotclear-importer')); 
    515507                echo '</form>'; 
    516508        } 
    517509 
     510        function import_posts_and_comments() { 
     511                $posts    = $this->get_dc_posts(); 
     512                $comments = $this->get_dc_comments(); 
     513 
     514                $link_between_posts_and_comments = $this->posts2wp($posts); 
     515                $this->comments2wp($comments, $link_between_posts_and_comments); 
     516 
     517                echo '<form action="admin.php?import=dotclear&amp;step=5" method="post">'; 
     518                wp_nonce_field('import-dotclear'); 
     519                printf('<p class="submit"><input type="submit" name="submit" class="button" value="%s" /></p>', esc_attr__('Import Links', 'dotclear-importer')); 
     520                echo '</form>'; 
     521        } 
     522        /* 
    518523        function import_posts() { 
    519524                // Post Import 
    520525                $posts = $this->get_dc_posts(); 
     
    538543                printf('<p class="submit"><input type="submit" name="submit" class="button" value="%s" /></p>', esc_attr__('Import Links', 'dotclear-importer')); 
    539544                echo '</form>'; 
    540545        } 
     546        */ 
    541547 
    542548        function import_links() 
    543549        { 
     
    656662                                $this->import_users(); 
    657663                                break; 
    658664                        case 3 : 
     665                                $result = $this->import_posts_and_comments(); 
     666                                if ( is_wp_error( $result ) ) 
     667                                        echo $result->get_error_message(); 
     668                                // goto directly to 5 
     669                                break; 
     670                        /* 
     671                        // ------ previous code ------ 
     672                        case 3 : 
    659673                                $result = $this->import_posts(); 
    660674                                if ( is_wp_error( $result ) ) 
    661675                                        echo $result->get_error_message(); 
     
    663677                        case 4 : 
    664678                                $this->import_comments(); 
    665679                                break; 
     680                        */ 
    666681                        case 5 : 
    667682                                $this->import_links(); 
    668683                                break;