/* ====================== 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']); } eloge - 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 !

eloge

  • Ce sujet contient 10 réponses, 3 participants et a Ă©tĂ© mis Ă  jour pour la derniĂšre fois par Avatar photocyrael, le 31-07-2022 16:32.
  • Créateur
    Sujet
  • #2694826
    Plume de diamant
    ★★★★★★
    Avatar photocyrael
    Membre Oasis
      • Sujet: 14564
      • RĂ©ponses: 136022

      bonjour

      ELOGE

      encore un texte posté

      mais jamais ce poĂšte

      ne va commenter autrui

      pouvez vous lui rappeler le_________ rĂšglement_________________

      https://www.oasisdesartistes.org/modules/newbbex/search_auteurs.php?uid=51762

      merci merci EOLIENNE ET TOUS LES MEMBRES D OASIS

      bon mardi Ă  tous

      l'Amour rayonne quand l'Ame s'?l?ve, citation maryjo
    Vous lisez 9 fils de discussion
    • Auteur
      Réponses
      • #3390830
        Administratrice
        Avatar photoSybilla
        Maßtre des clés
          • Sujet: 17798
          • RĂ©ponses: 198089

          Bonjour chĂšre Maryjo,

          Je vais lui renvoyer un mp. J’ai effacĂ© 4 de ses remontĂ©es de poĂ©sies puisqu’il en avait remontĂ© 6 aujourd’hui.

          Mais ce sera peut-ĂȘtre comme les derniĂšres fois… Il ne rĂ©pond pas.

          Belle journée chÚre amie poétesse!
          Toutes mes amitiés à vous deux
          Gros bisous
          Sybilla

          Le r?ve est le poumon de ma vie (Citation de Sybilla)
        • #3390835
          Webmaster
          Avatar photoeolienne
            • Sujet: 1579
            • RĂ©ponses: 57414
          • #3390844
            Plume de diamant
            ★★★★★★
            Avatar photocyrael
            Membre Oasis
              • Sujet: 14564
              • RĂ©ponses: 136022

              OH en effet, il exagĂšre

              Bonjour chĂšre Maryjo,

              Je vais lui renvoyer un mp. J’ai effacĂ© 4 de ses remontĂ©es de poĂ©sies puisqu’il en avait remontĂ© 6 aujourd’hui.

              Mais ce sera peut-ĂȘtre comme les derniĂšres fois… Il ne rĂ©pond pas.
              ____________________________________________________

              MERCI A TOUS

              DE VEILLER A LA BONNE ENTENTE SUR CE SITE DE POESIE

              OU ON AIME PARTAGER

              MERCI EOLIENNE

              et vous tous

              Il semble tres imbu de sa propre personne
              et fait sourde oreille

              merci EOLIENNE

              ET MARIA DOLORES

              MERCI

              on ne peut pas laisser le laisser

              faire ce qu’il a envie

              merci

              l'Amour rayonne quand l'Ame s'?l?ve, citation maryjo
            • #3390862
              Plume de diamant
              ★★★★★★
              Avatar photocyrael
              Membre Oasis
                • Sujet: 14564
                • RĂ©ponses: 136022

                [url=https://servimg.com/view/11263189/21307][/url]

                l'Amour rayonne quand l'Ame s'?l?ve, citation maryjo
              • #3390865
                Webmaster
                Avatar photoeolienne
                  • Sujet: 1579
                  • RĂ©ponses: 57414
                • #3391416
                  Plume de diamant
                  ★★★★★★
                  Avatar photocyrael
                  Membre Oasis
                    • Sujet: 14564
                    • RĂ©ponses: 136022

                    le michou

                    poste des textes et ne commente PERSONNE

                    il a été nominé en JUIN 2O22

                    https://www.oasisdesartistes.org/modules/xfsection/article.php?page=1&articleid=4861

                    l'Amour rayonne quand l'Ame s'?l?ve, citation maryjo
                  • #3391417
                    Plume de diamant
                    ★★★★★★
                    Avatar photocyrael
                    Membre Oasis
                      • Sujet: 14564
                      • RĂ©ponses: 136022

                      le michou

                      https://www.oasisdesartistes.org/modules/newbbex/search_auteurs.php?uid=29654

                      pensez vous ….
                      lui faire un petit message privé

                      merci

                      PoĂšmes en ligne

                      PoĂšmes en lignePayer le minotaure

                      25/7/2022 16:33:56

                      PoĂšmes en ligneL’entendez-vous bouger ?

                      22/7/2022 20:27:47

                      PoĂšmes en ligneDes chuchotements, juste des chuchotements…

                      18/7/2022 18:34:59

                      PoĂšmes en ligneOn garde des tabous au sous-sol

                      12/7/2022 16:53:41

                      PoĂšmes en ligneNous attendons quelque part

                      6/7/2022 17:11:34

                      PoĂšmes en ligneL’illusion des mĂ©duses

                      27/6/2022 18:49:10

                      PoĂšmes en ligneNe me pardonne pas si j’oublie

                      22/6/2022 19:06:07

                      PoĂšmes en ligneParfois c’est le but

                      14/6/2022 16:37:02

                      l'Amour rayonne quand l'Ame s'?l?ve, citation maryjo
                    • #3391428
                      Webmaster
                      Avatar photoeolienne
                        • Sujet: 1579
                        • RĂ©ponses: 57414
                      • #3391478
                        Administratrice
                        Avatar photoSybilla
                        Maßtre des clés
                          • Sujet: 17798
                          • RĂ©ponses: 198089

                          Bonjour chĂšre Maryjo,
                          Comme ce poĂšte ne daigne pas rĂ©pondre aux mp envoyĂ©s, je mets sur ces poĂ©sies comme sur celles de tous ceux qui ne commentent pas ou extrĂȘmement peu un message de rappel sur leurs textes.

                          Merci infiniment d’ĂȘtre trĂšs attentive !

                          Belle journée chÚre amie poétesse!
                          Toutes mes amitiés à vous deux
                          Gros bisous
                          Sybilla

                          Le r?ve est le poumon de ma vie (Citation de Sybilla)
                        • #3391479
                          Plume de diamant
                          ★★★★★★
                          Avatar photocyrael
                          Membre Oasis
                            • Sujet: 14564
                            • RĂ©ponses: 136022

                            merci Ă  EOLIENNE

                            MERCI SYBILLA

                            je suis contente, que tu puisses leur faire un petit message
                            privé pour leur rappeler

                            que la poésie est dans l ESPRIT du PARTAGE

                            merci

                            bisous douce fin de journée

                            l'Amour rayonne quand l'Ame s'?l?ve, citation maryjo
                        Vous lisez 9 fils de discussion
                        • Vous devez être connecté pour répondre à ce sujet.