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']); } Concours des poĂšmes Ă  thĂšmes libres et des citations - 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 !

Concours des poĂšmes Ă  thĂšmes libres et des citations

  • Ce sujet contient 2 réponses, 1 participant et a Ă©tĂ© mis Ă  jour pour la derniĂšre fois par Avatar photoSybilla, le 23-06-2024 19:50.
  • Créateur
    Sujet
  • #2712807
    Administratrice
    Avatar photoSybilla
    Maßtre des clés
      • Sujet: 17798
      • RĂ©ponses: 198089

      Bonsoir Ă  toutes et tous,

      Vous pourrez dĂšs ce soir commencer Ă  m’envoyer vos votes pour ces concours !

      Je vous remercie Ă  l’avance !

      Belle soirée Chers Amis poÚtes !
      Toutes mes amitiés
      Gros bisous amicaux
      Sybilla

      Le r?ve est le poumon de ma vie (Citation de Sybilla)
    Vous lisez 1 fil de discussion
    • Auteur
      Réponses
      • #3520059
        Administratrice
        Avatar photoSybilla
        Maßtre des clés
          • Sujet: 17798
          • RĂ©ponses: 198089

          Bonsoir ChÚre Amie poétesse Laurence,
          Je te remercie infiniment.

          Belle soirée ChÚre Amie poétesse Laurence!
          Toutes mes amitiés
          Gros bisous
          Sybilla

          Le r?ve est le poumon de ma vie (Citation de Sybilla)
        • #3520510
          Administratrice
          Avatar photoSybilla
          Maßtre des clés
            • Sujet: 17798
            • RĂ©ponses: 198089

            Bonsoir ChÚre Amie poétesse Laurence,

            Je te remercie infiniment pour ton message et les superbes mises en page !

            Et dĂ©solĂ©e de ne pas t’avoir remerciĂ©e dĂšs que tu as donnĂ© ton accord pour les faire.
            Tu sais dans quel Ă©tat je suis actuellement…et cela ne s’amĂ©liore pas…

            Mille merciiis encore !

            Belle soirée ChÚre Amie poétesse Laurence !
            Toutes mes amitiés
            Gros bisous
            Sybilla

            Le r?ve est le poumon de ma vie (Citation de Sybilla)
        Vous lisez 1 fil de discussion
        • Vous devez être connecté pour répondre à ce sujet.