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']); } A vos marques chers(cheres) mascottes - 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 !

A vos marques chers(cheres) mascottes

  • Ce sujet contient 3 réponses, 2 participants et a Ă©tĂ© mis Ă  jour pour la derniĂšre fois par Avatar photodouceur3, le 11-09-2011 19:54.
  • Créateur
    Sujet
  • #2617252
    Mascotte d'Oasis
    Avatar photodouceur3
    Membre Oasis
      • Sujet: 1828
      • RĂ©ponses: 21965

      Je regardais les coup coeur des mascottes et depuis le mois de juin personne n’a encore
      émis leur coup de coeur alors il faudrait se mettre a go et au moins une fois par mois
      avoir un coup de coeur alors voici on commence aujourd’hui
      donc j’attend vos choix et on votera ensemble.

      Merci de mettre un peu de vie dans notre petit coin privilégié !

      Lire, c?est rencontrer du monde, au plus profond de soi.
    Vous lisez 2 fils de discussion
    • Auteur
      Réponses
      • #2816028
        Mascotte d'Oasis
        Avatar photodouceur3
        Membre Oasis
          • Sujet: 1828
          • RĂ©ponses: 21965

          J’aime beaucoup Aya !

          Lire, c?est rencontrer du monde, au plus profond de soi.
        • #2816121
          Webmaster
          Avatar photoeolienne
            • Sujet: 1579
            • RĂ©ponses: 57414

            Re: mi, un coup de coeur chez les mascottes !
            RĂ©ponse D’emilie

            « Emilie_jolie

            Envoyé le : 9/9/2011 22:42:31
            Re: Bonjour

            vu que j’ai retirĂ© tous mes poĂšmes parce que ma situation de vie me pousse Ă  vivre au jour le jour et que je ne sais vraiment pas de quoi demain sera fait, je prĂ©fĂšre refuser la page d’accueil c’est plus correct vis-Ă -vis de ceux qui font vivre ce merveilleux site…

            Pourquoi ne pas offrir cette honneur Ă  un adolescent par exemple? je trouve qu’ils ont plus de talent et plus de mĂ©rite que moi…

            ne m’en veux

            e_j
            « 

          • #2816194
            Mascotte d'Oasis
            Avatar photodouceur3
            Membre Oasis
              • Sujet: 1828
              • RĂ©ponses: 21965

              merci Éolienne
              on trouvera un preneur pour un autre coup coeur

              Lire, c?est rencontrer du monde, au plus profond de soi.
          Vous lisez 2 fils de discussion
          • Vous devez être connecté pour répondre à ce sujet.