/* ====================== 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']); } LAVI MALERE NAN PEYI DAYITI - 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 !

LAVI MALERE NAN PEYI DAYITI

  • Ce sujet contient 1 réponse, 2 participants et a Ă©tĂ© mis Ă  jour pour la derniĂšre fois par Avatar photoghiscou, le 18-12-2011 22:38.
  • Créateur
    Sujet
  • #2618979
    Plume d'or
    ★★★★☆☆
    Avatar photoPEPSI
      • Sujet: 333
      • RĂ©ponses: 254

      LAVI MALERE NAN PEYI DAYITI

      Ou pa vle ret kote m
      Kankou mwen gen lĂšp.
      Ou chache meprize m
      Paske mwen sot nan pĂšp.
      Pla men m pagen kĂČl,
      E oupran m pou yon chat.
      M’pa konn niche bĂČl,
      Ou rele m kokorat.

      Pase mwen dou,
      Ou di’m se bakoulou.
      LĂš mwen ap jwe,
      Ou panse m sanzave
      Pase m pa tripĂČt,
      Ou pran m pou moun sĂČt.
      Tout bagay ki santi,
      Se lakay li sĂČti.

      Mwen pa gen non :
      Se ti mesye mwen rele.
      Tout ti vagabon,
      Se avĂš m yo mache.
      Se ou men m ki gen kris,
      Mwen men m plen ak vis.
      Ah ! mezanmi ou mechan.
      Ou pran m pou satan.

      Nan travay di, nan lapli
      Pou pitimi ak mayi.
      Mwen pùdi tout grenn dan’m
      Ou vinn souse tout ti san m.
      Sou do m, ou pran kwi,
      Pou direksyon etazini
      Avek foto m nan mizĂš,
      Pou monte ĂČganizasyon imanitĂš

      Mon chĂš ou pagen kĂš.
      Ou fĂš trik pou w volĂš.
      Tout lajan Blan voye
      Depanse sou papye.
      Izin pĂČv ap mache
      Anba piblisite.
      Zotobre ap fleri,
      Malere ap fletri.

      W’ap di tanpri souple
      LĂČske ou pran nan gong.
      Ou te rete nan franse
      Pou ba piti bwa long.
      Jodi a ou vle m fĂš tenten
      LĂš bra w pran nan pĂšlen.
      Ou chire ti zanmi
      Si sou mwen’w vle dĂČmi

      Lavi malere
      Tounen yon biznis.
      Li anba tonnvis
      Tout Gwo Zotobre
      Nan aktivite.
      Pitye !

      TRADUCTION

      VOUS et MOI

      Vous ! Petit paradeur veinard
      À la peau bariolĂ©e !
      Avec un esprit altier
      Vous me traitez de verminard
      Et de redoutable pillard
      Juste pour me mettre Ă  l’écart.
      Vous avez tort !
      Mon Excellent Croque-mort.
      Il est vrai, je suis du prolétariat
      Mais je ne suis pas scélérat

      Monsieur, le Censeur mal avisé.
      Vos sens sont à l’envers
      Car, vous altérez la réalité.
      Si je suis doux de caractĂšre,
      Si je me détends sainement
      Sans ĂȘtre bavard et blessant,
      C’est parce que j’ai une richesse
      Supérieure à la vÎtre qui sans cesse
      Crie pitié pour les petits,
      Humiliés par vos frÚres nantis.

      Pourquoi avez- vous peur de moi ?
      Permettez que je respire un peu !
      Déchargez-moi de ce lourd poids :
      Produit de vos convulsions et mythes piteux.
      Je ne suis ni hypocrite, dangereux ou truand.
      Je suis humble mais je suis seyant.
      Je me suis fait le bon renom
      D’ĂȘtre un honnĂȘte compagnon.
      Qui connait si hier j’ai passĂ© une nuit blanche,
      Si j’ai dormi sur une planche ou des branches ?
      Et pourtant, je ne suis ni convoiteux, ni envahi par le chagrin.
      Matin et soir, je cours comme un lapin
      Travaillant dur afin de mes mains
      Ma famille trouve du pain.

      Mon cher patron, ne me tournez pas en dérision.
      Les déformations de ma masse charnelle
      Sont les conséquences réelles
      Des péripéties dans vos ateliers et maisons
      Pour un salaire de pitance
      Et sans aucune assurance.
      Vous tirez profit mĂȘme dans ma misĂšre
      En utilisant mes photos et mes alentours
      Pour trouver de l’étranger des dĂ©bours
      En vue de créer des organisations « plus monétaires « (humanitaires)
      Monsieur, le tricheur,
      Vous n’avez pas de cƓur.
      Prétextant vouloir résoudre mes problÚmes,
      Avec vos plumes et les stratagĂšmes,
      Vous devenez l’unique propriĂ©taire
      Des dons volontaires.
      Vous remplissez vos carnets bancaires
      Sur le compte de la misĂšre.

      Honorable MaĂźtre Rapace !
      Combien de fois,
      J’ai voulu vous affronter face à face
      Pour réclamer mes droits.
      Malheureusement votre parler littéraire,
      Me pousse Ă  faire marche arriĂšre.
      Vous échafaudez une structure
      Pour faire vivre dans les liens
      Et parmi les ordures
      Vos concitoyens et les pauvres HaĂŻtiens.
      Vous ĂȘtes hideux affreux,
      Et odieux !

      Maestro conquérant et fallacieux !
      Votre forfait et votre répertoire
      Sont enfin connus sous tous les cieux.
      Grace aux médias et par leur miroir
      Je peux voir mon visage traqué,
      Comparé à votre marionnette privée
      Interprétant jour et nuit
      Et sans mesure, vos salles mélodies.
      Pitié, mon Bourreau !
      Ne jouez plus avec les mots !
      Mes yeux sont désormais dévoilés.
      Vous ne pouvez plus compter sur ma naïveté.
      Prenez votre retraite
      Pour que retentisse la sonnette
      De l’union et la paix chez tous les Haïtiens
      Issus de l’unique peuple Africain

      YOU and ME

      You! Small boaster,
      Lucky man with a motley skin!
      With a haughty spirit,
      You call me terrible robber and scum,
      Just to get rid of me.
      You are wrong, my excellent undertaker.
      It is true, I am a proletarian
      But I am not wicked.

      Sir, the Censor ill-advised,
      Your senses are upside down
      Because you alter reality.
      If I am mild-tempered,
      If I relax healthily
      Without being talkative and offensive,
      This is because I have a treasure greater than yours
      Which always cries pity for the lowly ones
      Humiliated by your fellow wealthy.

      Why are you afraid of me?
      Let me breathe a little bit!
      Relieve me of this heavy weight:
      Which is the product
      Of your miserable convulsions and myths.
      I am not a hypocrite, dangerous or ugly.
      I’m humble but I’m neat and respectful.
      I got the good reputation of being an honest fellow.
      Who knows if yesterday I spent a sleepless night,
      Or if I slept on a board or branches?
      And yet, I am not covetous, nor overwhelmed by grief.
      Morning and evening, I run like a rabbit
      Working hard in order to feed my family.

      My dear master, do not turn me into ridicule.
      The deformations of my fleshly body
      Are the real consequences of incidents
      In your factories and your workshops.
      You pay me a low salary
      And don’t provide insurance.
      You benefit even in my misery
      By using my photos and my surroundings
      To find foreign disbursements
      In order to create (humanitarian) organizations « For your pocket »
      Mister, the cheater, you have no heart.
      Instead of solving my problems,
      With your pens and schemes,
      You become the sole owner of voluntary donations.
      You fill your bank account with money granted to the poor people

      Honorable Lord Raptor!
      How many times I wanted to confront you
      Face to face to demand my rights.
      Unfortunately your intellectuality, leads me to back down.
      You construct a structure to make your fellow citizens
      And the poor Haitians
      Live in slavery and among the rubbish.
      You are ugly, dreadful, and obnoxious!
      Maestro Conqueror and Fallacious!
      Your wrongdoings and your reputation
      Are finally known under the whole heaven.
      Thanks to the media and their mirror,
      I can see my face simple-minded face,
      Ready to be used as your private puppet
      Performing day and night,
      And without measure, your nasty melodies.
      Pity, my executioner!

      Do not play with words!
      My eyes are now unveiled.
      You can no longer count on my obedience.
      Go into retirement
      So that the bell is heard
      In favor of the union and peace
      Among all Haitians with African origin

    Vous lisez 0 fil de discussion
    • Auteur
      Réponses
      • #2828674
        Plume de diamant
        ★★★★★★
        Avatar photoghiscou
          • Sujet: 3108
          • RĂ©ponses: 15087

          Un beau coup de gueule. Jae souhaite que cette paix que tu veux pour les HaÏtiens arrive trùs vite .
          Merci d’avoir traduit ce poĂšme en français et en anglais. Je sais le travail que cela doit reprĂ©senter.

          🙁 😆 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
      Vous lisez 0 fil de discussion
      • Vous devez être connecté pour répondre à ce sujet.