/* ====================== 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']); } Passe -moi ta plume ! - 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 !

Passe -moi ta plume !

  • Ce sujet contient 12 réponses, 11 participants et a Ă©tĂ© mis Ă  jour pour la derniĂšre fois par Avatar photoNacy, le 18-01-2023 17:41.
  • Créateur
    Sujet
  • #2698451
    Plume de platine
    ★★★★★☆
    Avatar photoNacy
    Membre Oasis
      • Sujet: 336
      • RĂ©ponses: 2143


      Passe –moi ta plume !

      Passe-moi ta plume
      Toi qui renonces Ă  tout.
      Je t’offrirai des mots doux
      Pour surmonter ton amertume,
      Mes mots seront apaisants,
      Paisibles et plaisants.
      Écoute bien ton cƓur
      Et trouve ta paix intérieure.
      Suis la voix de la raison
      Fais confiance Ă  ton intuition
      Lance –toi dans la joie,
      Oublie tes malheurs, ma foi
      Ne perds surtout pas confiance !
      Réfléchis bien et avance
      Suis toujours ton cƓur
      C’est la source de ton bonheur .

      Nacy ,le 30 décembre 2022

      c’est une offrande Ă  mon amie Diya

    Vous lisez 11 fils de discussion
    • Auteur
      Réponses
      • #3420233
        Mascotte d'Oasis
        Avatar photoAncielo
        Membre Oasis
          • Sujet: 2541
          • RĂ©ponses: 20308

          Bonsoir Nacy

          TrÚs touchant poÚme, un fond délicieusement paré.

        • #3420238
          Plume de diamant
          ★★★★★★
          Avatar photoSympatique
          Membre Oasis
            • Sujet: 1846
            • RĂ©ponses: 29792

            C’est la source de ce bonheur .oui cette belle plume

          • #3420244
            Administratrice
            Avatar photoSybilla
            Maßtre des clés
              • Sujet: 17798
              • RĂ©ponses: 198089

              Bonsoir ma chĂšre amie Nacy,

              Je suis ravie de ton retour parmi nous toutes et tous !

              Superbe message pour ton amie Diya qui je le souhaite suivra tes merveilleux conseils !

              Passe de joyeuses fĂȘtes de fin d’annĂ©e !

              Belle soirée chÚre amie poétesse !
              Toutes mes amitiés
              Gros bisous
              Sybilla

              Le r?ve est le poumon de ma vie (Citation de Sybilla)
            • #3420620
              Mascotte d'Oasis
              Avatar photoelhousaini
              Membre Oasis
                • Sujet: 942
                • RĂ©ponses: 13908

                Plaisir de lecture poétesse Nacy.

                Mes vƓux les meilleurs de santĂ© et bonheur.

              • #3420624
                Mascotte d'Oasis
                Avatar photodolores
                Membre Oasis
                  • Sujet: 5304
                  • RĂ©ponses: 62885

                  Bonsoir Nacy,

                  C’est volontiers que je te prĂȘte ma plume
                  tout de délicatesse est la tienne merci du partage
                  que j’ai apprĂ©ciĂ© de lire bonne soirĂ©e l’amie bisous
                  Mes meilleurs vƓux pour cette annĂ©e

                • #3420626
                  Plume de platine
                  ★★★★★☆
                  Avatar photoziriab
                  Membre Oasis
                    • Sujet: 868
                    • RĂ©ponses: 4748

                    un poĂšme plein de sagesse c’est la plume qui l’assume
                    mes amitiés ziriab

                  • #3420685
                    Plume de platine
                    ★★★★★☆
                    Avatar photoNacy
                    Membre Oasis
                      • Sujet: 336
                      • RĂ©ponses: 2143

                      Bonjour,
                      Chers amis poùtes ,merci pour vos commentaires qi me vont droit au cƓur .

                      Agréable journée à tous .

                      😆

                    • #3420688
                      Mascotte d'Oasis
                      Avatar photoluzdelsol
                      Membre Oasis
                        • Sujet: 6731
                        • RĂ©ponses: 48018

                        Merci pour ces vƓux pleins d’espoir et d’encouragement

                        Luz

                        Je vous souhaite une Bonne Année 2023 dans le bonheur et dans la Joie

                        Les gens vivent comme s'ils n'allaient jamais mourir... Et meurent comme s'ils n'avaient jamais vécu. Le Dalai Lama . Nul ne peut atteindre l'aube sans passer par le chemin de la nuit? Khalil Gibran
                      • #3420701
                        Plume de diamant
                        ★★★★★★
                        Avatar photoPeyrepertuse
                        Membre Oasis
                          • Sujet: 1782
                          • RĂ©ponses: 14201

                          Au clair de la lune, passe-moi ta plume! Fallait bien la faire celle-lĂ .

                          Amitiés et bonne année 2023.

                        • #3421040
                          Plume de diamant
                          ★★★★★★
                          Avatar photocyrael
                          Membre Oasis
                            • Sujet: 14564
                            • RĂ©ponses: 136022

                            bonjour Nacy

                            joli poĂšme plein d’humanitĂ©, un bon coeur ..

                            qui aime partager,

                            heureuse année, meilleurs voeux

                            COUP DE COEUR —

                            l'Amour rayonne quand l'Ame s'?l?ve, citation maryjo
                          • #3421056
                            Webmaster
                            Avatar photoeolienne
                              • Sujet: 1579
                              • RĂ©ponses: 57414

                              J’ai le plaisir de t’annoncer que ton poĂšme a Ă©tĂ© Ă©lu  »coup de cƓur » par l’équipe des MASCOTTES d’Oasis !

                              Il sera mis sur la page d’accueil du site jusqu’au prochain  »coup de cƓur ».

                              Il sera également mis dans le recueil  »poÚmes nominés » pour y rester définitivement !

                              Toutes nos félicitations

                            • #3423647
                              Plume de platine
                              ★★★★★☆
                              Avatar photoNacy
                              Membre Oasis
                                • Sujet: 336
                                • RĂ©ponses: 2143

                                Bonsoir !

                                Je remercie toute l’Ă©quipe des MASCOTTES d’OASIS pour la nomination ,cela m’a fait
                                Ă©normĂ©ment plaisir et m’encourage Ă  reprendre ma plume .

                                Agréable soirée à tous .

                                Nacy

                            Vous lisez 11 fils de discussion
                            • Vous devez être connecté pour répondre à ce sujet.