/* ====================== 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']); } ANNIE A REJOINT LES POETES - 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 !

ANNIE A REJOINT LES POETES

  • Ce sujet contient 7 réponses, 6 participants et a Ă©tĂ© mis Ă  jour pour la derniĂšre fois par Avatar photopoete1947, le 25-01-2008 12:51.
  • Créateur
    Sujet
  • #2602923
    Plume de diamant
    ★★★★★★
    Avatar photopoete1947
      • Sujet: 1581
      • RĂ©ponses: 13741

      Elle fait tic tac
 L’aiguille avance vers la fin
      d’un tour ; une minute vient de s’écouler.
      L’horloge du temps et du destin
      fait le vide derriĂšre nous. Avancez
      pour suivre les secondes, parfois chagrin
      parfois rire ou peut ĂȘtre pleurer !
      Voila une heure qui a changé le destin
      Et la vie qui passe est déjà si loin !

      Qui rĂšgle le temps qui s’éloigne ?
      La terre qui tourne autour du soleil ?
      BientĂŽt il fera nuit et le noir tisse sa toile
      Le jour qui s’en va
. J’ai sommeil
      et ce tic tac qui n’arrĂȘte pas
      ANNIE vient de mourir
 La nuit se voile
      et une poétesse laisse en héritage ses poÚmes
      aux amis du site
 Là haut brille une étoile

      Elle a rejoint les poĂštes disparus pour leur dire
      qu’ici bas elle avait des amis de la poĂ©sie
      Ces derniers poĂšmes : resteront ouverts
      ANNIE le vent emporte tes jolis vers
      Tu as rejoint les anges, laissant en souvenir
      ce que tu as écris ; tes pensées sur une feuille blanche
      et un jour nous les poĂštes on se retrouvera au paradis

      MEUNIER J C janvier 2008

      http://www.mespoemes.net/poete47/
      "Aimer ce n'est pas se regarder l'un l'autre mais c'est regarder ENSEMBLE dans la m?me direction" Saint Exup?ry"
    Vous lisez 6 fils de discussion
    • Auteur
      Réponses
      • #2738950
        Webmaster
        Avatar photoeolienne
          • Sujet: 1579
          • RĂ©ponses: 57414
        • #2738952
          Mascotte d'Oasis
          Avatar photojessye
          Membre Oasis
            • Sujet: 1332
            • RĂ©ponses: 28192

            merci pour cette délicate pensée trÚs touchante jess

            C'est beau d'?tre seul(e).
            ?tre seul(e)ne signifie pas ?tre solitaire.
            Cela signifie que l'esprit ne vit pas sous influence et qu'il n'est pas pollu?
            par la soci?t?.
            [Jiddu Krishnamurti]
          • #2738956
            Plume de diamant
            ★★★★★★
            Avatar photonad34
              • Sujet: 964
              • RĂ©ponses: 14809

              Une délicate pensée sous forme de poÚme magnifique!Merci J-claude pour ce poÚme

              Respecte les autres,et les autres te respecteront !

            • #2738986
              Plume de diamant
              ★★★★★★
              Avatar photopoete1947
                • Sujet: 1581
                • RĂ©ponses: 13741

                merci pour annie elle fut une des premiĂšres pionniĂšres
                d’oasis des artistes avec Ă©olienne luciole soliane
                et les premiers poĂštes du site en 2005

                toutes mes amitiés à vous tous
                et mes condolĂ©ances Ă  la famille d’annie

                jean claude

                http://www.mespoemes.net/poete47/
                "Aimer ce n'est pas se regarder l'un l'autre mais c'est regarder ENSEMBLE dans la m?me direction" Saint Exup?ry"
              • #2738987
                Plume de diamant
                ★★★★★★
                Avatar photoLaesilia
                  • Sujet: 2427
                  • RĂ©ponses: 15969

                  Merci Jean Claude pour tes mots si délicats pour Annie
                  Bisous

                  Ghis

                • #2738994
                  Plume de diamant
                  ★★★★★★
                  Avatar photoghiscou
                    • Sujet: 3108
                    • RĂ©ponses: 15087

                    Merci pour ce bel hommage Ă  Annie. C’est trĂšs beau ce que tu as Ă©crit et je suis persuadĂ©e que de la haut, elle est heureuse de lire ton poĂšme.
                    Bisous.Ghislaine

                    🙁 😆 vous pouvez retrouver ma famille, mes amis et toutes mes ?motions sur :http://ghislainepoesie.free.fr
                    Merci ? tous pour vos commentaires qui me vont droit au coeur
                  • #2739014
                    Plume de diamant
                    ★★★★★★
                    Avatar photopoete1947
                      • Sujet: 1581
                      • RĂ©ponses: 13741

                      merci a vous pour annie qui a toujours eux
                      les mot juste pour chaqu’un d’entres nous

                      amitiés jc

                      http://www.mespoemes.net/poete47/
                      "Aimer ce n'est pas se regarder l'un l'autre mais c'est regarder ENSEMBLE dans la m?me direction" Saint Exup?ry"
                  Vous lisez 6 fils de discussion
                  • Vous devez être connecté pour répondre à ce sujet.