C’est dans la poche !!
39 rĂ©flexions au sujet de “C’est dans la poche !!”
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.
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.
PlutĂŽt originale cette photo !
PlutĂŽt originale cette photo !
Bonjour Guest
Tres jolie photo !
Amitiés
c’est dans la poche

mieux que dans la sacoche
c’est dans la poche

mieux que dans la sacoche
bravo joli jeu de mots et jolie photo
un bien joli gros plan (mais pas gros du tout)
amitiés
bravo joli jeu de mots et jolie photo
un bien joli gros plan (mais pas gros du tout)
amitiés
Bonsoir fenelove
Je t’embrasse.
Pascal

Bonsoir fenelove
Je t’embrasse.
Pascal

parle Ă mon c…. ma tĂȘte est malade
lĂ on s’adresse aux deux, c’est trĂšs bien
enchanté !!!

parle Ă mon c…. ma tĂȘte est malade
lĂ on s’adresse aux deux, c’est trĂšs bien
enchanté !!!

Tres original !
Tres original !
merci j’aime ce photo montage , mais je prĂšfĂšre les fesses de ma chĂ©rie malgrĂ© tout

merci j’aime ce photo montage , mais je prĂšfĂšre les fesses de ma chĂ©rie malgrĂ© tout

TrĂšs belle photo!Bravo!

TrĂšs belle photo!Bravo!

gabin disait; » t’as d’beaux yeux tu sais » je serais tentĂ©e de dire t’as un beau …. pantalon tu sais!!
mes amitiés K.

gabin disait; » t’as d’beaux yeux tu sais » je serais tentĂ©e de dire t’as un beau …. pantalon tu sais!!
mes amitiés K.

merci Ă vous

merci Ă vous

un pantalon qui dessine bien les beautĂ©s les formes sympathiques du corps…merci

un pantalon qui dessine bien les beautĂ©s les formes sympathiques du corps…merci

TrĂšs belle crĂ©ation…J’aime
AmitiĂ© ♥ *Žš)
ž. âąÂŽÂž.♥ âąÂŽÂš) ♥ž. âą*š)(ž.♥ âąÂŽ* âą.ž
(ž.♥ âąÂŽ (ž.♥ âąÂŽ (ž.♥ âą*ÂŽÂŻ`(ž.♥ âą*ÂŽÂŻ`*♥âąFrancineâą*♥ ♥ ♥.ž.âąÂŽ♥
TrĂšs belle crĂ©ation…J’aime
AmitiĂ© ♥ *Žš)
ž. âąÂŽÂž.♥ âąÂŽÂš) ♥ž. âą*š)(ž.♥ âąÂŽ* âą.ž
(ž.♥ âąÂŽ (ž.♥ âąÂŽ (ž.♥ âą*ÂŽÂŻ`(ž.♥ âą*ÂŽÂŻ`*♥âąFrancineâą*♥ ♥ ♥.ž.âąÂŽ♥
Mani-fesse-tement une jolie pose !
Amitié
Christian
Mani-fesse-tement une jolie pose !
Amitié
Christian
Originale !!!!
la photo et les fesses….

Bisous
Toute mon amitié
Originale !!!!
la photo et les fesses….

Bisous
Toute mon amitié
[color=0033FF]coucou mon trĂšs cher clown Nr 1 :clindoeil:
 » CŽest dans la poche !!  »
Non, cÂŽĂ©tait pour rire !…
JÂŽadoooooooooooooooooooooooooooore
Et je vote 10
Baiser papillon
ton clown (seulement) Nr 2 !
[/color]
[color=0033FF]coucou mon trĂšs cher clown Nr 1 :clindoeil:
 » CŽest dans la poche !!  »
Non, cÂŽĂ©tait pour rire !…
JÂŽadoooooooooooooooooooooooooooore
Et je vote 10
Baiser papillon
ton clown (seulement) Nr 2 !
[/color]
sourires..
j’aime bcp cette crĂ©ation ..
originale
bisous
sourires..
j’aime bcp cette crĂ©ation ..
originale
bisous