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

Nouvelles d’Avril

  • Ce sujet contient 7 réponses, 7 participants et a Ă©tĂ© mis Ă  jour pour la derniĂšre fois par Avatar photoNataraja, le 25-05 14:14.
  • Créateur
    Sujet
  • #3614705
    Plume de diamant
    ★★★★★★
    Avatar photoOceaniclaude
    Membre Oasis
      • Sujet: 939
      • RĂ©ponses: 12605

       

      Ouf j’ai enfin rĂ©ussi aprĂšs pas mal de pĂ©ripĂ©ties Ă  me connecter de nouveau ; voici donc avec retard ma gazette d’avril .

       

      -ActualitĂ©s Militaires : le dernier porte avion « Gerald Ford » ultra-moderne AmĂ©ricain vitrine de la puissance AmĂ©ricaine forcĂ© Ă  l’arrĂȘt en pleine guerre avec l’Iran paralysĂ© victime de ses toilettes bouchĂ©es !!!! C’est ce qui s’appelle ĂȘtre dans la merde (au sens propre bien que cela soit cracra !) cette situation rĂ©currente sur ce bateau peut faire sourire mais trĂšs fĂącheuse pour ceux qui ont la courante ; DĂ©cidĂ©ment : Aurions-nous pu penser cela ; le mĂȘme dysfonctionnement a eu lieu dans la capsule Orion d’Artemis II. Quelques heures aprĂšs son lancement de la terre vers la lune (Jules Verne y avait dĂ©jĂ  pensĂ© il y a 161 ans) le 1er avril dernier, la conduite d’évacuation Ă©tant gelĂ©e ne permettait plus les Ă©vacuations ! et ce n’était pas un poisson d’avril !!!! les cosmonautes ont dĂ» jouer comme Pierre Perret les Plombiers-biers-biers. C’est lunaire (ou Con comme la lune dirait l’autre) Ils avaient emmenĂ© un pot de Nutella de chez Ferrero mais pas celui de chez Destop . Quelques heures aprĂšs l’annonce par le prĂ©sident Emanuel Macron du nom du porte avion « le France libre » qui sera construit Ă  St Nazaire ; Jean Luc MĂ©lenchon (dĂ©cidĂ©ment roi du parrainage !) propose de le rebaptiser par « la France Insoumise » !!! (AprĂšs avoir le mois dernier dĂ©jĂ  rebaptisĂ© CrĂ©ole la langue Française) il est vrai que l’acadĂ©mie Française a confirmĂ© que l’on devrait dire le porte avion « la France libre » le prĂ©sident se serait donc permis une petite libertĂ© grammaticale !-ActualitĂ©s Peeples : 1) Icone de la TĂ©lĂ©-rĂ©alitĂ© : Loana suivie par des milliers d’abonnĂ©s (des Follower comme on dit aujourd’hui) dĂ©cĂšde seule Ă  son domicile ! Merci les rĂ©seaux sociaux !!!  2) GIMS le rappeur aux lunettes noires qui chante ceinture noire est arrĂȘtĂ© par la douane pour Blanchiment !! Affaire liĂ©e Ă  un vaste projet immobilier au Maroc (ce n’est pourtant pas Ă  Casablanca !) Comme Jacques Lang, il se dit “blanc comme neige“. Il a pourtant Ă©tĂ© placĂ© en garde Ă  vue. Ainsi qu’il annonce en parlant de son spectacle : cela pourrait ĂȘtre son « dernier tour »

       

      -ActualitĂ©s Fantaisistes ; À l’Ăšre des fake-news et de la dĂ©sinformation en ligne les poissons d’avril et canulards sont moins en vogue cette annĂ©e. Dans ma jeunesse nous accrochions le dessin d’un petit poisson dans le dos de nos camarades de classe. Mais pourquoi vouloir accrocher un poisson dans le dos alors que la dĂ©couverte de ce dos pourrait faire apparaitre une raie ? (Le fameux sourire du plombier : Bien que dans ce cas, ce ne soit plus un poisson : Aimant toujours les poissons d’avril voici ceux que je vous propose, vous les trouverez peut-ĂȘtre Ă©grillards mais ça nous change des guerres en cours. (Poissons d’avril certes mais aussi quelques vĂ©ritĂ©s !)

       

      -1er avril 2026 :Jumelage de la commune de Sion-les-mines situĂ©e en Loire Atlantique (a) avec Sion capitale du Valais en Suisse et de Clis en GuĂ©rande avec Thourie en Ille et Vilaine (Clis-Thourie) Le mois dernier, j’évoquais les accords d’Évian du 19 mars 1962 mettant fin Ă  sept annĂ©es de guerre en AlgĂ©rie ; signĂ©s avec le GPRA reprĂ©sentant les Fellaghas du FLN (encore en AlgĂ©rie au moment de ces accords, nous, les appelĂ©s du contingent Ă  l’époque  les appelions les Fels,) ils Ă©taient logĂ©s Ă  Sions en Suisse, ne me demandez pas pourquoi, mais cet hĂ©bergement des Fels Ă  Sion, me fait penser Ă  Patrick SĂ©bastien et sa prestation au concert du camping Naturiste du Cap d’Agde et sa chanson osĂ©e « c’est pas tromper » en rĂ©fĂ©rence Ă  la question irrĂ©vĂ©rencieuse de Thierry Ardisson Ă  Michel Rocard ou encore Ă  Monica Lewinsky et Bill Clinton qui a longtemps fait le dos rond avant d’admettre avoir eu une relation « inappropriĂ©e » avec la jeune stagiaire dans le bureau ovale  mais aussi Ă  Rachida Dati et son cĂ©lĂšbre lapsus en parlant d’inflation !!! Ces Fels auraient pu ĂȘtre reçus Ă  St Claude ! dans le Jura mais Sion en Suisse est Ă  distance égale, et ils s’y sentaient plus en sĂ©curité ; la Suisse et sa neutralitĂ© Ă©tant plus appropriĂ©e pour jouer les bons offices et les accueillir.

       

      -Depuis le 20 mars, le printemps est là.

      Mon jardin est en plein délire

      Et c’est pour moi un vrai plaisir

      Dans les jardins de Saint Nazaire

      Fleurissent déjà les premiÚres bruyÚres

      Avril, ce sont aussi les fĂȘtes pascales

      Les chocolats ne font pas de mal

      Pour les enfants du six au neuf

      Ce fut aussi la chasse aux Ɠufs

      Les journĂ©es rallongent le soleil en fĂȘte

      Un bon mois de mai Ă  venir je vous souhaite

      Claude

      a) Sion les mines ; c’est lĂ  oĂč, cĂ©libataire, avec les copains pour faire des rencontres, nous allions “guincher“ le tango la valse, le paso-doble, le cha-cha-cha, madison etc. Comme Tintin, nous disions aussi “les cons dansent Ă  Sion“ C’était l’époque des orchestres avec accordĂ©on et bandonĂ©on avec Yvette HORNER surnommĂ©e la reine des musettes et Ă  ZOLA, vers CHURENE, il y avait aussi Marcel qui trĂšs AIMABLE chauffait la salle de Jacques BREL. Aujourd’hui les rencontres se font en lignes, je pense que cela doit ĂȘtre quand mĂȘme moins convivial que le p’tit bal du samedi soir de Renaud ou les bals populaires de Michel Sardou. Ces rencontres sous algorithmes transforment les adeptes en consommateurs, c’est la culture du zapping
 j’imagine qu’il doit y avoir pas mal d’ambiguĂŻtĂ©s, de frustrations et d’arnaques aux sentiments (l’affaire rĂ©cente du faux Brad Pitt en est l’exemple !) mais comment cette femme crĂ©dule a pu tomber dans ce piĂšge et lui verser plus de 800 000 €uros ??? c’est vrai “qu’on ne prĂȘte qu’aux riches“ et qu’elle s’appelait Ane avec deux n !!!

    Vous lisez 6 fils de discussion
    • Auteur
      Réponses
      • #3614885
        Administratrice
        Avatar photoSybilla
        Maßtre des clés
          • Sujet: 17798
          • RĂ©ponses: 198089

          Bonsoir Cher poĂšte Claude, notre chroniqueur du site,

           

          Je suis navrĂ©e que tu aies eu 0 commentaire….

          J’espĂšre que d’autres suivront au mien…

           

           

          Merci pour ton superbe partage journalistique du mois d’avril qui m’a Ă©normement amusĂ©e !

           

          Belle soirée Cher Ami poÚte Claude !

          Toutes mes amitiés

          Sybilla

          Le r?ve est le poumon de ma vie (Citation de Sybilla)
        • #3615108
          Mascotte d'Oasis
          Avatar photoislander
          Membre Oasis
            • Sujet: 8957
            • RĂ©ponses: 96782

            trĂšs intĂ©ressant tout cela, du local Ă  l’universel, vous regardez le monde droit dans les yeux, pauvres amĂ©ricains sur leur porte avions, la question est faut il rire ou pleurer, bravo poĂšte

          • #3615308
            Webmaster
            joel
            Maßtre des clés
              • Sujet: 198
              • RĂ©ponses: 4013

              Bonsoir Claude
              Cela fait plusieurs fois que je lis vos « gazettes » avec un trÚs grand plaisir.
              Vous apportez plein de bonheur et beaucoup d’humour quel rĂ©gal.
              Merci d’ĂȘtre sur le site
              Bon courage
              Bonnes pensées
              Amicalement
              JOEL

            • #3615721
              Plume de diamant
              ★★★★★★
              Avatar photoLyria
              Membre Oasis
                • Sujet: 247
                • RĂ©ponses: 14889

                Oceaniclaude,

                Des nouvelles d’avril pleines d’humour que j’ai beaucoup aimĂ© lire

                Amitiés sincÚres

                Mes recueils de po?sies et de nouvelles publi?s aux ?ditions Amalth?e.

              • #3615795
                Plume de diamant
                ★★★★★★
                Avatar photoOceaniclaude
                Membre Oasis
                  • Sujet: 939
                  • RĂ©ponses: 12605

                  Un grand merci Ă  vous ami(e)s poĂštes de vos remarques chaleureuses

                  Amitiés

                  Claude

                • #3615833
                  Plume de platine
                  ★★★★★☆
                  Avatar photoMiltanya
                  Membre Oasis
                    • Sujet: 391
                    • RĂ©ponses: 2639

                    Sympa comme chronique

                    Bravo

                    Mercy pour cette paranthĂšse

                    Mercy avec un Y comme le Yin et le Yang... FĂ©e Miltanya pour ceux qui le mĂ©ritent ou Marquise ÉloĂŻse pour les amateurs de jeux de rĂŽles... http://fee-milt...
                  • #3616807
                    Mascotte d'Oasis
                    Avatar photoNataraja
                    Membre Oasis
                      • Sujet: 427
                      • RĂ©ponses: 10819

                      Bonjour Claude

                      Toujours grand plaisir Ă  dĂ©couvrir et lire ta «  gazette » 

                      En effet , les actualitĂ©s ont toujours Ă  fournir tant d’ anecdotes croustillantes

                      pour le chroniqueur que tu es pour notre plaisir .

                      Bravo et bon aprùs midi à l’ombre !!

                      Amitiés

                      Nat

                      Les haillons de l’amour ne se reprisent pas . Nataraja.
                  Vous lisez 6 fils de discussion
                  • Vous devez être connecté pour répondre à ce sujet.