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']); } Au revoir Jacques, notre apostrophe ! - 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 !

Au revoir Jacques, notre apostrophe !

  • Ce sujet contient 0 réponse, 1 participant et a Ă©tĂ© mis Ă  jour pour la derniĂšre fois par Avatar photoeolienne, le 19-05-2006 18:25.
  • Créateur
    Sujet
  • #2600102
    Webmaster
    Avatar photoeolienne
      • Sujet: 1579
      • RĂ©ponses: 57414

      Je viens de prendre connaissance du mail d’Isabelle et je vous en fait part :

      « C’est le coeur baignĂ© de tout l’amour que j’ai pour Jacques que je viens te dire que Jacques s’en est allĂ© au pays des poĂštes hier matin Ă  2 h 30 du matin, dans son sommeil, le jour du muguet.’est tout. Je le sens prĂšs de moi, avec moi, comme jamais, il n’est pas parti loin, il vivra dans mon coeur pour l’Ă©ternitĂ© et je continuerai de lui Ă©crire et je sais qu’il me lira.
      Je reviendrai sur le site dĂšs que j’aurai le pc rĂ©parĂ©, je ne pleurerai pas dans les chaumiĂšres, Jacques n’aimerait pas ça, je lui Ă©crirai, je resterai celle que j’Ă©tais, avec lui, du temps oĂč il Ă©tait lĂ . Rien ne change, rien ne bouge, Jacques n’est pas mort, il est juste lĂ  haut.
      Jacques Ă©tait la noblesse dans toute sa splendeur et jusqu’au bout, il a puisĂ© dans ses derniĂšres forces pour me dire tout ce qu’il m’aimait et c’est la plus belle preuve d’amour qui soit. Et moi, j’aurais Ă©tĂ© lĂ , prĂšs de lui, jusqu’au bout et j’y suis encore et Ă  jamais.
      Adeline, tu peux mettre un mot sur le site si tu veux, en disant que Jacques y a trouvĂ©, ces derniers mois, un immense bonheur. Je sais que les amis seront tristes et peinĂ©s mais on doit penser Ă  lui comme on pense Ă  un poĂšte des temps passĂ©s, de ceux qu’on n’oublie pas et qui resteront dans l’histoire car il le mĂ©rite.
      je t’embrasse tendrement Adeline.
      Isabelle »

      [i][b][size=medium][color=000000][font=Georgia]Un forum  »hommage Ă  Jacques » va ĂȘtre ouvert dans la rubrique  »nos artistes », nous y regrouperons tous ses poĂšmes et vous pourrez lui rendre ainsi un dernier hommage ![/font][/color][/size][/b][/i]

    • Vous devez être connecté pour répondre à ce sujet.