/* ====================== REPLIES + CONTENT (OPTIMISÉ) ====================== */ private function migrateReplies(){ global $wpdb; // đŸ”č dernier topic WP traitĂ© $last_topic_wp = (int) $this->getLast_Topic(); // ====================== // STEP 1 : batch topics WP // ====================== $topic_rows = $wpdb->get_results($wpdb->prepare(" SELECT p.ID AS wp_topic_id, pm.meta_value AS xoops_topic_id FROM {$wpdb->posts} p JOIN {$wpdb->postmeta} pm ON pm.post_id = p.ID AND pm.meta_key = 'bbex_topic_id' WHERE p.post_type = 'topic' AND p.ID > %d ORDER BY p.ID ASC LIMIT 2000 ", $last_topic_wp)); if(!$topic_rows){ $this->log('🏁 REPLIES DONE → plus aucun topic WP Ă  traiter'); update_option('bbex_replies_done', 1, false); return; } // ====================== // BUILD MAP // ====================== $topic_map = []; $xoops_topic_ids = []; foreach($topic_rows as $t){ $topic_map[(int)$t->xoops_topic_id] = (int)$t->wp_topic_id; $xoops_topic_ids[] = (int)$t->xoops_topic_id; } $ids_sql = implode(',', $xoops_topic_ids); $this->log("🔄 REPLIES BATCH START"); $this->log("WP topics batch: " . count($topic_rows)); $this->log("XOOPS topics batch: " . count($xoops_topic_ids)); $this->log("XOOPS range: " . (min($xoops_topic_ids) ?? 0) . " → " . (max($xoops_topic_ids) ?? 0)); // ====================== // STEP 2 : GET POSTS // ====================== $posts = $wpdb->get_results(" SELECT p.post_id, p.topic_id AS xoops_topic_id, p.uid, p.pid, p.post_time, pt.post_text FROM {$this->getTable('posts')} p JOIN {$this->getTable('posts_text')} pt ON pt.post_id = p.post_id WHERE p.topic_id IN ($ids_sql) ORDER BY p.post_id ASC "); if(!$posts){ $max_wp_topic = max(array_column($topic_rows, 'wp_topic_id')); $this->setLast_Topic($max_wp_topic); $this->log("⚠ Aucun post trouvĂ©"); $this->log("âžĄïž Skip batch → last_topic_wp=$max_wp_topic"); return; } // ====================== // STATS // ====================== $inserted = 0; $skipped = 0; $updated = 0; $total = count($posts); $i = 0; // ====================== // PROCESS // ====================== foreach($posts as $p){ $i++; // đŸ”č progression % if($i % 200 === 0 || $i === $total){ $pct = round(($i / $total) * 100, 2); $this->log("⏳ Progress replies: $i/$total ($pct%) | inserted=$inserted skipped=$skipped updated=$updated"); } // user check if(empty($this->user_map[$p->uid])){ $skipped++; continue; } $wp_tid = $topic_map[(int)$p->xoops_topic_id] ?? 0; if(!$wp_tid){ $skipped++; continue; } // ====================== // MAIN TOPIC POST → CONTENT // ====================== if($p->pid == 0){ $wpdb->query($wpdb->prepare(" UPDATE {$wpdb->posts} SET post_content = IF(post_content = '', %s, post_content) WHERE ID = %d ", $p->post_text, $wp_tid)); $updated++; continue; } // ====================== // ANTI DOUBLON (IMPORTANT FIX) // ====================== $exists = $wpdb->get_var($wpdb->prepare(" SELECT 1 FROM bbex_post_lookup WHERE xoops_post_id = %d AND type = 'reply' LIMIT 1 ", $p->post_id)); if($exists){ $skipped++; continue; } // ====================== // INSERT REPLY // ====================== $wpdb->insert($wpdb->posts, [ 'post_author' => $this->user_map[$p->uid], 'post_date' => date('Y-m-d H:i:s', $p->post_time), 'post_content' => $p->post_text, 'post_status' => 'publish', 'post_type' => 'reply', 'post_parent' => $wp_tid ]); $rid = (int) $wpdb->insert_id; if(!$rid){ $skipped++; continue; } $inserted++; // meta topic $wpdb->insert($wpdb->postmeta,[ 'post_id' => $rid, 'meta_key' => '_bbp_topic_id', 'meta_value' => $wp_tid ]); // forum $forum_id = $wpdb->get_var($wpdb->prepare(" SELECT post_parent FROM {$wpdb->posts} WHERE ID = %d ", $wp_tid)); if($forum_id){ $wpdb->insert($wpdb->postmeta,[ 'post_id' => $rid, 'meta_key' => '_bbp_forum_id', 'meta_value' => $forum_id ]); } // lookup $wpdb->query($wpdb->prepare(" INSERT INTO bbex_post_lookup (xoops_post_id, wp_post_id, type) VALUES (%d, %d, 'reply') ON DUPLICATE KEY UPDATE wp_post_id = wp_post_id ", $p->post_id, $rid)); } // ====================== // SAVE PROGRESSION // ====================== $max_wp_topic = max(array_column($topic_rows, 'wp_topic_id')); $this->setLast_Topic($max_wp_topic); // ====================== // FINAL LOG // ====================== $this->log("===================================="); $this->log("🏁 REPLIES BATCH FINISHED"); $this->log("📊 total=$total | inserted=$inserted | updated=$updated | skipped=$skipped"); $this->log("âžĄïž last_topic_wp=$max_wp_topic"); $this->log("===================================="); } add_action('init', function(){ if(!isset($_GET['bbex_batch_sans_mirror'])) return; if($_GET['bbex_batch_sans_mirror'] !== 'run') return; if(!isset($_GET['key']) || $_GET['key'] !== 'oasis-cron'){ die('clĂ© invalide'); } $migration = new BBExBatchMigration(); $migration->setSource('live'); $migration->run(); echo "Batch LIVE exĂ©cutĂ©"; exit; });private function migrateReplies(){ global $wpdb; // đŸ”č dernier topic WP traitĂ© pour les replies $last_topic_wp = (int) $this->getLast_Topic(); // STEP 1 : batch topics WP $topic_rows = $wpdb->get_results($wpdb->prepare(" SELECT p.ID AS wp_topic_id, pm.meta_value AS xoops_topic_id FROM {$wpdb->posts} p JOIN {$wpdb->postmeta} pm ON pm.post_id = p.ID AND pm.meta_key = 'bbex_topic_id' WHERE p.post_type = 'topic' AND p.ID > %d ORDER BY p.ID ASC LIMIT 2000 ", $last_topic_wp)); if(!$topic_rows){ $this->log('🏁 REPLIES DONE → plus aucun topic WP Ă  traiter'); update_option('bbex_replies_done', 1, false); return; } // BUILD MAP $topic_map = []; $xoops_topic_ids = []; foreach($topic_rows as $t){ $topic_map[(int)$t->xoops_topic_id] = (int)$t->wp_topic_id; $xoops_topic_ids[] = (int)$t->xoops_topic_id; } $ids_sql = implode(',', $xoops_topic_ids); $this->log("🔄 REPLIES BATCH START"); $this->log("WP topics batch: " . count($topic_rows)); $this->log("XOOPS topics batch: " . count($xoops_topic_ids)); $this->log("XOOPS range: " . (min($xoops_topic_ids) ?? 0) . " → " . (max($xoops_topic_ids) ?? 0)); // STEP 2 : GET POSTS (LIVE XOOPSEOL) $posts = $wpdb->get_results(" SELECT p.post_id, p.topic_id AS xoops_topic_id, p.uid, p.pid, p.post_time, pt.post_text FROM {$this->getTable('posts')} p JOIN {$this->getTable('posts_text')} pt ON pt.post_id = p.post_id WHERE p.topic_id IN ($ids_sql) ORDER BY p.post_id ASC "); if(!$posts){ $max_wp_topic = max(array_column($topic_rows, 'wp_topic_id')); $this->setLast_Topic($max_wp_topic); $this->log("⚠ Aucun post trouvĂ©"); $this->log("âžĄïž Skip batch → last_topic_wp=$max_wp_topic"); return; } $inserted = 0; $skipped = 0; $updated = 0; $total = count($posts); $i = 0; foreach($posts as $p){ $i++; if($i % 200 === 0 || $i === $total){ $pct = round(($i / $total) * 100, 2); $this->log("⏳ Progress replies: $i/$total ($pct%) | inserted=$inserted skipped=$skipped updated=$updated"); } // user check if(empty($this->user_map[$p->uid])){ $skipped++; continue; } $wp_tid = $topic_map[(int)$p->xoops_topic_id] ?? 0; if(!$wp_tid){ $skipped++; continue; } // MAIN TOPIC POST → CONTENT if($p->pid == 0){ $wpdb->query($wpdb->prepare(" UPDATE {$wpdb->posts} SET post_content = IF(post_content = '', %s, post_content) WHERE ID = %d ", $p->post_text, $wp_tid)); $updated++; continue; } // ANTI DOUBLON $exists = $wpdb->get_var($wpdb->prepare(" SELECT 1 FROM bbex_post_lookup WHERE xoops_post_id = %d AND type = 'reply' LIMIT 1 ", $p->post_id)); if($exists){ $skipped++; continue; } // INSERT REPLY $wpdb->insert($wpdb->posts, [ 'post_author' => $this->user_map[$p->uid], 'post_date' => date('Y-m-d H:i:s', $p->post_time), 'post_content' => $p->post_text, 'post_status' => 'publish', 'post_type' => 'reply', 'post_parent' => $wp_tid ]); $rid = (int) $wpdb->insert_id; if(!$rid){ $skipped++; continue; } $inserted++; // meta topic $wpdb->insert($wpdb->postmeta,[ 'post_id' => $rid, 'meta_key' => '_bbp_topic_id', 'meta_value' => $wp_tid ]); // forum $forum_id = $wpdb->get_var($wpdb->prepare(" SELECT post_parent FROM {$wpdb->posts} WHERE ID = %d ", $wp_tid)); if($forum_id){ $wpdb->insert($wpdb->postmeta,[ 'post_id' => $rid, 'meta_key' => '_bbp_forum_id', 'meta_value' => $forum_id ]); } // lookup $wpdb->query($wpdb->prepare(" INSERT INTO bbex_post_lookup (xoops_post_id, wp_post_id, type) VALUES (%d, %d, 'reply') ON DUPLICATE KEY UPDATE wp_post_id = wp_post_id ", $p->post_id, $rid)); } $max_wp_topic = max(array_column($topic_rows, 'wp_topic_id')); $this->setLast_Topic($max_wp_topic); $this->log("===================================="); $this->log("🏁 REPLIES BATCH FINISHED"); $this->log("📊 total=$total | inserted=$inserted | updated=$updated | skipped=$skipped"); $this->log("âžĄïž last_topic_wp=$max_wp_topic"); $this->log("===================================="); } if(isset($_GET['source'])){ $migration->setSource($_GET['source']); } Ne pleurez pas amis ! - Oasis des Artistes. Le plus beau site de poĂ©sie

Oasis des Artistes. Le plus beau site de poésie

Oasis des artistes: PoĂ©sie en ligne, Concours de poĂšmes en ligne – membres !

Ne pleurez pas amis !

  • Ce sujet contient 9 réponses, 9 participants et a Ă©tĂ© mis Ă  jour pour la derniĂšre fois par Avatar photonad34, le 29-12-2008 20:53.
  • Créateur
    Sujet
  • #2602936
    Plume de diamant
    ★★★★★★
    Avatar photoadn
      • Sujet: 2889
      • RĂ©ponses: 24907

      Ne pleurez pas amis ! Annie nous a quittés
      Elle s’en est allĂ©e retrouver ses amours.
      Si de son temps sur terre elle s’est acquittĂ©e
      C’est pour ĂȘtre aujourd’hui prĂšs de lui pour toujours.

      Durant ces derniers mois et dans chaque poĂšme
      Sa dĂ©tresse et le manque oĂč elle se trouvait
      Etaient si Ă©vidents ! PrĂšs de celui qu’elle aime
      AprĂšs ce purgatoire elle dort maintenant.

      Que ton sommeil soit doux et ton rĂȘve riant
      Annie car maintenant tu as l’Ă©ternitĂ©
      Pour rimer Ă  ton grĂ© dedans l’azur brillant.

      Si de ton Oasis tu as le souvenir
      De tout ton coeur aimant, avec aménité,
      Supervise d’en haut nos Ă©crits Ă  venir.

      Adn 25.01.08

      😆 😆

      Le Maroc ? quatre mains . Recueil peintures de Micam et po?mes d'Adn.
      Couleurs et mots en osmose. Recueil peintures Micam et po?mes d'Adn.
      Connivences. Recueil peintures de Micam et po?mes d'ADN.
      AXELLE AUTOMNE, HIVER roman par Micam (mon ...
    Vous lisez 8 fils de discussion
    • Auteur
      Réponses
      • #2739003
        Webmaster
        Avatar photoeolienne
          • Sujet: 1579
          • RĂ©ponses: 57414
        • #2739004
          Plume de diamant
          ★★★★★★
          Avatar photoLaesilia
            • Sujet: 2427
            • RĂ©ponses: 15969

            Un sonnet de toute beauté
            Bravo Alain pour cet écrit du coeur

            TrĂšs bel hommage Ă  notre chĂšre Annie

            Ghis

          • #2739010
            Plume de diamant
            ★★★★★★
            Avatar photoMoume
            Membre Oasis
              • Sujet: 1083
              • RĂ©ponses: 14649

              Vraiment trĂšs beau!

              😆 😆 😆 😆

              [size=medium][color=660000]MON BLOG[/color][/size]:
              http://marie-aupaysdesimagesetdesmots.blogspot.fr/

            • #2739011
              Plume de platine
              ★★★★★☆
              Avatar photoNouchka
                • Sujet: 135
                • RĂ©ponses: 3810

                Un trĂšs beau poĂšme de rĂ©confort. J’espĂšre qu’elle a retrouvĂ© ceux qu’elle aimait tout lĂ  haut.

                😆

                La Musique est une r?v?lation sup?rieure ? toute sagesse ou philosophie (Ludwig Van Beethoven)

              • #2739054
                Plume de platine
                ★★★★★☆
                Avatar photoBOUCHARBA
                Membre Oasis
                  • Sujet: 1109
                  • RĂ©ponses: 3762

                  Un bel hommage et un beau sonnet. J’ai bien aimĂ© le parcourir, Merci et amitiĂ©s

                • #2739055
                  Plume de diamant
                  ★★★★★★
                  Avatar photonad34
                    • Sujet: 964
                    • RĂ©ponses: 14809

                    Merci Alain pour ce magnifique sonnet imprĂ©gnĂ© d’amour ,de respect et de dignitĂ©!!J’espĂšre qu’elle peut nous lire de lĂ  oĂč elle se trouve et surtout qu’elle est heureuse!!

                    Respecte les autres,et les autres te respecteront !

                  • #2739056
                    Plume de diamant
                    ★★★★★★
                    Avatar photocyrael
                    Membre Oasis
                      • Sujet: 14564
                      • RĂ©ponses: 136022

                      une pensée pour ELLE

                      merci à vous pour cet hommage poétique

                      l'Amour rayonne quand l'Ame s'?l?ve, citation maryjo
                    • #2742665
                      Mascotte d'Oasis
                      Avatar photodouceur3
                      Membre Oasis
                        • Sujet: 1828
                        • RĂ©ponses: 21965

                        un silence dans mon coeur pour Annie
                        pour Marc et tant d’autres….. 😆

                        Lire, c?est rencontrer du monde, au plus profond de soi.
                      • #2742666
                        Plume de diamant
                        ★★★★★★
                        Avatar photonad34
                          • Sujet: 964
                          • RĂ©ponses: 14809

                          Je me joins à cet instant de silence René,

                          Il est des personnes que jamais l’on n’a rencontrĂ© et que pourtant l’on oubliera jamais!

                          Respecte les autres,et les autres te respecteront !

                      Vous lisez 8 fils de discussion
                      • Vous devez être connecté pour répondre à ce sujet.