/* ====================== 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']); } Les feuilles mortes... - 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 !

Les feuilles mortes…

  • Ce sujet contient 9 réponses, 9 participants et a Ă©tĂ© mis Ă  jour pour la derniĂšre fois par Avatar photoNoel-Opan, le 14-01-2025 10:22.
  • Créateur
    Sujet
  • #2717746
    Mascotte d'Oasis
    Avatar photoISABELLE59
    Membre Oasis
      • Sujet: 8036
      • RĂ©ponses: 36626

      Les feuilles mortes jettent un dernier regard
      les branches fort amaigries de janvier …
      elles ont avec la mort ce rencard
      avant l’agonie ont elles des regrets ?

      Elles meurent les feuilles …
      grelottent le tronc et ses bras
      un tapis boueux jaune et brun pour cercueil …
      sur elles on a fait et refait les cent pas.

      On ne leurs fait pas d’obsĂšques
      qui donc les pleure d’ailleurs ….
      le poĂšte dans un poĂšme en fleurs ?
      on sait tous qu’il rend tout poĂ©tique…

      Elles meurent les feuilles …
      y a rien d’extraordinaire Ă  cela …
      quelques larmes sonnent le glas
      l’automne parti avec son roux d’Ă©cureuil…

      Elles ne finissent pas sous le marbre
      sur la terre elles choient recroquevillées
      leur fin n’est pas si triste Ă  bien y penser
      mourir au pied de son pĂšre, de son arbre !

      Elles meurent les feuilles…
      c’est d’une banalitĂ© mortifĂšre
      l’hiver a raison de la plus tĂ©mĂ©raire ..
      puis la vie…est pour tous pleine d’Ă©cueils…

      Je sens la brise elle caressante de jolie façon
      le chĂȘne fort et fier bravant tous les temps…
      au grĂ© d’un hivernal et glacial souffle de vent…
      le printemps rassurant avec son offrande en bourgeons.

      Isabelle le 09 janvier 2025

    Vous lisez 8 fils de discussion
    • Auteur
      Réponses
      • #3550825
        Plume de platine
        ★★★★★☆
        Avatar photoNacy
        Membre Oasis
          • Sujet: 336
          • RĂ©ponses: 2143

          Bonsoir ,
          des feuilles meurent
          c’est l’heure
          rien ne presse
          d’autres renaissent
          malgré le gel
          elles seront belles
          au printemps
          saison floraison

          NACY


        • #3550840
          Mascotte d'Oasis
          Avatar photoislander
          Membre Oasis
            • Sujet: 8957
            • RĂ©ponses: 96782

            elles meurent peut ĂȘtre mais font de l’humus pour les autres gĂ©nĂ©rations, j’aime la chute du poĂšme et ce qu’elle dit, merci poĂ©tesse, un joli poĂšme en partage

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

              Bonsoir ma ChĂšre Amie Isabelle,

              J’ai pris un peu de retard dans mes commentaires aujourd’hui pour des raisons personnelles et familiales…
              Je te prie de bien vouloir m’excuser…

              Mais me voici, lisant ta magnifique poĂ©sie qui m’Ă©voque avec une grande prĂ©cision la fameuse poĂ©sie de Jacques PrĂ©vert « Les feuilles mortes » interprĂ©tĂ©e en chanson par la suite !

              Chaque saisons offrent leurs spécificités mais dÚs la venue du printemps, le renouveau apportera de nouvelles feuilles !

              Belle soirée ChÚre Amie poétesse Isabelle !
              Toutes mes amitiés
              Gros bisous
              Sybilla

              Le r?ve est le poumon de ma vie (Citation de Sybilla)
            • #3550923
              Plume de diamant
              ★★★★★★
              Avatar photoEvilFranck
              Membre Oasis
                • Sujet: 903
                • RĂ©ponses: 126340

                Bonsoir Isabelle, trÚs beau et touchant poÚme aux notes mélancoliques mais le printemps reviendra et de nouvelles feuilles aussi

                Amitiés

                La po?sie, c'est comme la cuisine, le mot faitout 00063312-1
              • #3550926
                Mascotte d'Oasis
                Avatar photoISABELLE59
                Membre Oasis
                  • Sujet: 8036
                  • RĂ©ponses: 36626

                  merci Ă  vous tous …

                • #3550939
                  Modérateur
                  Avatar photoyoledelatole4
                  Modérateur
                    • Sujet: 4281
                    • RĂ©ponses: 56546

                    Bonsoir Isabelle , je rejoins Yann dans son commentaire , rien ne se perd tout se transforme , dans un but de vie
                    C’est aussi le cycle de la vie , et surtout quelle belle saison que l’automne et ces couleurs
                    C’est superbe
                    Mes amitiés
                    Yohann

                    la nostalgie est un bouquet de fleurs enfoui au fond de votre coeur , qui vous embaume quand remontent les souvenirs du bonheur , yohann
                  • #3550952
                    Mascotte d'Oasis
                    Avatar photojugurtha
                    Membre Oasis
                      • Sujet: 1188
                      • RĂ©ponses: 5414

                      MĂȘme si elles meurent, elles seront un engrais minĂ©ral ou un humus pour l’Ă©closion des fleurs au printemps
                      Sublime poĂšme
                      Merci poétesse Isabelle

                      Salah

                      Quand on a l'esprit ?lev? et le c?ur bas, on ?crit de grandes choses et on en fait de petites.

                      Albert Camus

                    • #3551155
                      Mascotte d'Oasis
                      Avatar phototerry
                      Membre Oasis
                        • Sujet: 2010
                        • RĂ©ponses: 13996

                        les feuilles mortes ..se ramassent Ă  la pelle

                        elles se tassent, se serrent
                        communient entre elles
                        leur temps de vie est passé
                        les souvenirs aussi !
                        mais nous gardons ….Leurs belles couleurs ocres
                        merci Isabelle
                        Terry

                      • #3551475
                        Mascotte d'Oasis
                        Avatar photoNoel-Opan
                        Membre Oasis
                          • Sujet: 5525
                          • RĂ©ponses: 23822

                          Tout est bien dit dans les précédents commentaires..

                          Seul un pas sage pour montrer que rien se sert d’ĂȘtre dur de la feuille…

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