le peintre et ses models!!!!!
47 rĂ©flexions au sujet de “le peintre et ses models!!!!!”
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 Sybilla! merci pour ton passage sur cette photo avec mes petits compagnons!!!
belle soirée et week-end pour toi amie poétesse trÚs fidÚle!!
gros bisous amicaux également!!!! <3

Bonsoir Sybilla! merci pour ton passage sur cette photo avec mes petits compagnons!!!
belle soirée et week-end pour toi amie poétesse trÚs fidÚle!!
gros bisous amicaux également!!!! <3

Bonjour Cher Ami poĂšte Richard,
Je remets un commentaire sur ta photo puisqu’il n’y a nulle tracĂ© de mon passage prĂ©cĂ©dent.
Tranquille sur la photo !
Belle soirée Cher Ami poÚte !
Toutes mes amitiés
Gros bisous amicaux
Sybilla
Bonjour Cher Ami poĂšte Richard,
Je remets un commentaire sur ta photo puisqu’il n’y a nulle tracĂ© de mon passage prĂ©cĂ©dent.
Tranquille sur la photo !
Belle soirée Cher Ami poÚte !
Toutes mes amitiés
Gros bisous amicaux
Sybilla
Une photo trÚs émouvante !

Une photo trÚs émouvante !

Bonsoir bouana
Magnifique photo avec tous ces beaux animaux !
Amitiés
Merci Sybilla!!! mes amitiés à toi aussi!!!!

Merci Sybilla!!! mes amitiés à toi aussi!!!!

Bonsoir Zaghbenife!!! si! je travaille!!! tout ce passe dans la réflexion comme disait le miroir!!!!
jolie soirée et mon amitié!!!!

Bonsoir Zaghbenife!!! si! je travaille!!! tout ce passe dans la réflexion comme disait le miroir!!!!
jolie soirée et mon amitié!!!!

des modĂšles charmants

le peintre ne se fatigue pas
des modĂšles charmants

le peintre ne se fatigue pas
C’est une photo trĂšs sympathique avec tous ces animaux qui t’accompagnent.
C’est une photo trĂšs sympathique avec tous ces animaux qui t’accompagnent.
Bonsoir Cordel!!! cette photo date et hĂ©las, mes petits compagnons sont tous mort…de vieillesse!!!!
ils ont vécu trÚs heureux en effet!!!
amitiés cher Artiste PoÚte!!!!
Bonsoir Cordel!!! cette photo date et hĂ©las, mes petits compagnons sont tous mort…de vieillesse!!!!
ils ont vécu trÚs heureux en effet!!!
amitiés cher Artiste PoÚte!!!!
Disons mon cher Bouana que t’es pas mal entourĂ©. Tes modĂšles ont l’air heureux et toi aussi !

Amitié
Cornel
Disons mon cher Bouana que t’es pas mal entourĂ©. Tes modĂšles ont l’air heureux et toi aussi !

Amitié
Cornel
Bonsoir Selenia!!!
merci pour ton gentil commentaire!!!! oui! je continue comme ça!!!!
bisous amicaux chÚre poétesse!!!

Bonsoir Selenia!!!
merci pour ton gentil commentaire!!!! oui! je continue comme ça!!!!
bisous amicaux chÚre poétesse!!!

une image d’un bonheur superbe
je craque Ă chaque fois en voyant ce tableau idyllique
j’adore … et continue comme ça !
une image d’un bonheur superbe
je craque Ă chaque fois en voyant ce tableau idyllique
j’adore … et continue comme ça !
oui! c’est la maison du bon dieu!!!! lol!!
amitiés toujours!

oui! c’est la maison du bon dieu!!!! lol!!
amitiés toujours!

Bonsoir Richard, ils ont l’air d’ĂȘtre Ă l’aise
Bonsoir Richard, ils ont l’air d’ĂȘtre Ă l’aise
adorable photo !!!
j’aime Ă la folie les gens qui aiment les animaux
mes amitiés
adorable photo !!!
j’aime Ă la folie les gens qui aiment les animaux
mes amitiés
qui aime les animaux
aime les hommes!
EM
qui aime les animaux
aime les hommes!
EM
merci Ă vous toutes et tous pour votre gentillesse!!!
mes amitiés à vous!

merci Ă vous toutes et tous pour votre gentillesse!!!
mes amitiés à vous!

Vous avez l air tres gentil et vos animaux sont superbes !
Vous avez l air tres gentil et vos animaux sont superbes !
Trois points commun avec moi…

Trois points commun avec moi…

ils ont l’air malheureux !!!!
la belle vie

ils ont l’air malheureux !!!!
la belle vie

en tres bonne compagnie
vive l’amitiĂ© avec ses petits compagnons
bravo

en tres bonne compagnie
vive l’amitiĂ© avec ses petits compagnons
bravo

Ah toi aussi tu aimes les chats !!!!Trois points communs avec la peinture et la poésie.
Un tableau charmant Ă mettre sur toile!!!!
Bises félines.
MichĂšle
Ah toi aussi tu aimes les chats !!!!Trois points communs avec la peinture et la poésie.
Un tableau charmant Ă mettre sur toile!!!!
Bises félines.
MichĂšle
De bien beaux models :)))))))
De bien beaux models :)))))))
Ce sont des tops-models
Ce sont des tops-models