/* ====================== 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']); } coup de coeur: KIMI-ANN: demain dĂšs l'aube. - 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 !

coup de coeur: KIMI-ANN: demain dĂšs l’aube.

  • Ce sujet contient 7 réponses, 4 participants et a Ă©tĂ© mis Ă  jour pour la derniĂšre fois par Avatar photocyrael, le 01-06-2020 17:44.
Vous lisez 6 fils de discussion
  • Auteur
    Réponses
    • #3227224
      Webmaster
      Avatar photoeolienne
        • Sujet: 1579
        • RĂ©ponses: 57414
      • #3227226
        Plume de diamant
        ★★★★★★
        Avatar photodaniel46
        Membre Oasis
          • Sujet: 6433
          • RĂ©ponses: 18331

          ok. merci…. je comprends trĂšs bien.

          Amicalement

          daniel46

          Science sans conscience n'est que ruine de l'?me (Rabelais)
        • #3227286
          Administratrice
          Avatar photoSybilla
          Maßtre des clés
            • Sujet: 17798
            • RĂ©ponses: 198089

            Bonjour Daniel,

            J’ai failli aussi proposer cette magnifique poĂ©sie !

            Excellent choix !

            Belle journée !
            Mes amitiés
            Prends bien soin de toi !
            Sybilla

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

              bon choix

              mais elle a remonté son poÚme

              pour le commenter le meme jour

              PLUSIEURS FOIS

              or le rĂšglement dit ::

              http://www.oasisdesartistes.org/modules/newbbex/viewtopic.php?viewmode=flat&topic_id=267411&forum=2

              _______________

              Re: « Demain , dĂšs l’aube … »
              Sympathique Dolores et Capricorne , un grand merci Ă  vous d’avoir apprĂ©ciĂ© cet hommage Ă  ma maman…

              KIMI-ANN
              Envoyé le : 29/5/2020 16:42
              Plume d’or

              Inscrit le: 26/3/2008
              De:
              Envois: 1446

              Re: « Demain , dĂšs l’aube … »
              Merci merci Daniel … quel honneur de recevoir un tel commentaire ! Autant que moi vous auriez trouvĂ© les mots qu’il faut pour composer un tel hommage .
              Bien à vous, Amitiés poétiques ,
              ______________________________________________________________________

              ZAGHBENIFE
              Envoyé le : 29/5/2020 16:50
              Plume de platine

              Inscrit le: 7/11/2015
              De: ALGER
              Envois: 9131

              Re: « Demain , dĂšs l’aube … »
              un souvenir qui reste gravĂ©, et le coeur s’en souvient et se pince peinĂ©, tant de tendresse et d’amour dans le dire et offrir ce magnifique hommage Ă  sa mĂšre

              —————-
              _________________________________________________________________________________

              KIMI-ANN
              Envoyé le : 29/5/2020 17:47
              Plume d’or

              Inscrit le: 26/3/2008
              De:
              Envois: 1446

              Re: « Demain , dĂšs l’aube … »
              Sybilla , Felinelove et Franie … je voius remercie pour vos sympathiques coms .. Bien cordialement,,

              _______________________________________________________________________________________

              KIMI-ANN
              Envoyé le : 29/5/2020 21:44
              Plume d’or

              Inscrit le: 26/3/2008
              De:
              Envois: 1446

              Re: « Demain , dĂšs l’aube … »
              Merci ami poĂšte Zaghbenife…. bonne soirĂ©e amitiĂ©s poĂ©tiques.

              _______________________________________________________________________________

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

                reglement pour tous

                ARTICLE NEUVIEME– PUBLICATION DES COMMENTAIRES-

                Il ne sera autorisĂ© qu’un seul commentaire par poĂšme par le mĂȘme commentateur.
                Les commentaires superflus seront automatiquement effacĂ©s par l’équipe de modĂ©ration sans prĂ©avis.

                En cas de rĂ©cidive le membre sera informĂ© par MP qu’il s’expose Ă  une sanction s’il persiste dans ses errements.

                Vous ne pouvez pas commenter votre propre poĂšme si celui ci n’a aucun commentaire oĂč si vous ĂȘtes le dernier Ă  l’avoir commentĂ© dans le but de le faire remonter en premiĂšre page.

                Vous voudrez bien veiller Ă  ne pas changer le titre du poĂšme lorsque vous faites un commentaire.

                Lorsque vous rĂ©pondrez aux commentaires des autres membres, sous vos propres textes, vous veillerez Ă  regrouper vos rĂ©ponses en un seul envoi et ne pas commenter les membres isolement l’un aprĂšs l’autre.

                Il est demandĂ© de ne pas commenter plus de 2 poĂšmes du mĂȘme auteur par jour et Ă  la suite afin que le maximum d’auteurs diffĂ©rents soient visibles sur la premiĂšre page.

                Le remerciement aux commentateurs de vos poĂšmes,doit impĂ©rativement ĂȘtre limitĂ© Ă  UN PAR JOUR ET PAR POEME.

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

                    merci merci à THOMAS MODERATEUR pour avoir supprimé

                    les commentaires du meme jour

                    douce fin de soirée à VOUS TOUS

                    amitiés

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