j et moi dans tub.jpg
59 rĂ©flexions au sujet de “j et moi dans tub.jpg”
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.
/* ====================== 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']); }
Oasis des Artistes. Le plus beau site de poésie
Vous devez vous connecter pour publier un commentaire.
Bonsoir et merci Sybilla! bonne soirée et amitiés!!!

Bonsoir et merci Sybilla! bonne soirée et amitiés!!!

Trop mignonne cette photo !
Trop mignonne cette photo !
Merci Zorrina!!!
amitiés poétiques!

Bien mignonne cette photo !
Bien mignonne cette photo !
bonjour Sybilla!!! merci et bel aprĂšs-midi pour toi aussi!!! pas trop chaud j’espĂšre!

bonjour Sybilla!!! merci et bel aprĂšs-midi pour toi aussi!!! pas trop chaud j’espĂšre!

Merci de tout coeur Cyrael!!!
bises!!!!

Merci de tout coeur Cyrael!!!
bises!!!!

HEUREUX ANNIVERSAIRE BOUANA
AMITIES
meilleurs voeux

HEUREUX ANNIVERSAIRE BOUANA
AMITIES
meilleurs voeux

Bonsoir Zagh!
et oui! c’Ă©tait le dĂ©but des camping-cars!!!! hi!hi!!! nous avions une libertĂ© incroyable!!!
belle soirée et trÚs bon Dimanche!!!
amitiĂ©s Ă ta famille et toi-mĂȘme!!!!

Bonsoir Zagh!
et oui! c’Ă©tait le dĂ©but des camping-cars!!!! hi!hi!!! nous avions une libertĂ© incroyable!!!
belle soirée et trÚs bon Dimanche!!!
amitiĂ©s Ă ta famille et toi-mĂȘme!!!!

cela fait quand mĂȘme un effet lorsque tu regardes cette photo n’est-ce pas bouana

magnifique souvenir
cela fait quand mĂȘme un effet lorsque tu regardes cette photo n’est-ce pas bouana

magnifique souvenir
Bonsoir Sybilla! oui, c’Ă©tait une Ă©poque!!!!

belle soirée à toi aussi! amitiés!
Bonsoir Sybilla! oui, c’Ă©tait une Ă©poque!!!!

belle soirée à toi aussi! amitiés!
ca c’Ă©tait avant , la nostalgie pure bravo
ca c’Ă©tait avant , la nostalgie pure bravo
Touchant de nostalgie .
Touchant de nostalgie .
Superbe !!! Canaille
Superbe !!! Canaille
J’aime beaucoup
J’aime beaucoup
Hello copain!
elle est vraiment trop belle cette photo!!!
j’Ă©tais persuadĂ© d’avoir dĂ©jĂ mis un mot dessus
mes amitiés toujours
prends soin de toi
Hello copain!
elle est vraiment trop belle cette photo!!!
j’Ă©tais persuadĂ© d’avoir dĂ©jĂ mis un mot dessus
mes amitiés toujours
prends soin de toi
Bonsoir Richards, une photo adorable pour de jolis souvenirs
Amitiés
Bonsoir Richards, une photo adorable pour de jolis souvenirs
Amitiés
Bonjour Bouana.
***
Un tube…
Que de souvenirs !!!
***
Amicalement.
Gérard + v, cela le vaut bien.
Bonjour Bouana.
***
Un tube…
Que de souvenirs !!!
***
Amicalement.
Gérard + v, cela le vaut bien.
Une photo pleine de tendresse !
Une photo pleine de tendresse !
MAGNIFIQUE PHOTO
J’adore
amitiés en bises
MAGNIFIQUE PHOTO
J’adore
amitiés en bises
VIVE LA PHOTO
Tres belle famille : chers souvenirs
d’autrefois,
j’aime , j’aime
amitiés
VIVE LA PHOTO
Tres belle famille : chers souvenirs
d’autrefois,
j’aime , j’aime
amitiés
Super, Bouana !
Quelle jolie photo rétro et adorable souvenir !
Toutes mes amitiés,
Super, Bouana !
Quelle jolie photo rétro et adorable souvenir !
Toutes mes amitiés,
j’adore les photos d’enfants, celle-lĂ est craquante ! je suis trĂšs attachĂ©e Ă l’enfance !
gros bisous Ă toi
virgule
j’adore les photos d’enfants, celle-lĂ est craquante ! je suis trĂšs attachĂ©e Ă l’enfance !
gros bisous Ă toi
virgule
Ah oui les tubes s’Ă©taient quelques choses belle photo
Ah oui les tubes s’Ă©taient quelques choses belle photo
merci Mostafa!!!!
le photographe, c’Ă©tait mon pĂšre!!!!!!
merci pour lui!!!!
amitié pour toi!!!!

merci Mostafa!!!!
le photographe, c’Ă©tait mon pĂšre!!!!!!
merci pour lui!!!!
amitié pour toi!!!!

Quelle photo sublime!

Elle mĂ©rite d’ĂȘtre exposĂ©e dans une galerie d’art avec le nom de l’artiste qui l’a prise.
Quelle photo sublime!

Elle mĂ©rite d’ĂȘtre exposĂ©e dans une galerie d’art avec le nom de l’artiste qui l’a prise.
Coup de coeur pour cette photo adorable!

Amitiés!
Alain
Coup de coeur pour cette photo adorable!

Amitiés!
Alain
merci Ă vous deux!!!!!!
merci Ă vous deux!!!!!!
trĂšs belle photo…

amitiĂ©…
trĂšs belle photo…

amitiĂ©…
Bonjour Bouana,
Adorable photo !!
Chaque fois que je vois un tub,
je pense à la série télé  » Louis la brocante ».
Toute mon amitié
Arwen
Bonjour Bouana,
Adorable photo !!
Chaque fois que je vois un tub,
je pense à la série télé  » Louis la brocante ».
Toute mon amitié
Arwen