portrait-cousine-valerie.jpg
36 rĂ©flexions au sujet de “portrait-cousine-valerie.jpg”
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.
TrĂšs joli portrait.
TrĂšs joli portrait.
Bonsoir,
Merci pour ce portrait !
Belle soirée!
Toutes mes amitiés
Sybilla
Bonsoir,
Merci pour ce portrait !
Belle soirée!
Toutes mes amitiés
Sybilla
joli coup de crayon

joli coup de crayon

Un beau portrait .
Un beau portrait .
joli portrait, il est rĂ©ussi meme si je ne connais pas l’original ,

joli portrait, il est rĂ©ussi meme si je ne connais pas l’original ,

c’est vraiment rĂ©ussi Bien que je ne connaisse pas l’original…
c’est vraiment rĂ©ussi Bien que je ne connaisse pas l’original…
splendie portrait

splendie portrait

voici un trĂšs beau portrait
voici un trĂšs beau portrait
Magnifique ! Quel talent !!!!!!

Magnifique ! Quel talent !!!!!!

Du trĂšs beau travail, un coup de crayon CANON! Publies tu tes oeuvres?
Du trĂšs beau travail, un coup de crayon CANON! Publies tu tes oeuvres?
Bravo pour la vĂ©ritĂ© de l’expression

Bravo pour la vĂ©ritĂ© de l’expression

trĂšs joli dessin đ

trĂšs joli dessin đ

TrĂšs joli !!!

TrĂšs joli !!!

C’est un trĂšs beau portrait.

On ressent la chevelure, on sent le regard.
Il n’est pas facile de faire un portrait auquel Ă©mane la vie.
C’est un trĂšs beau portrait.

On ressent la chevelure, on sent le regard.
Il n’est pas facile de faire un portrait auquel Ă©mane la vie.
merci, mais je ne sais comment on fait!!!!!!!!!!!!
merci, mais je ne sais comment on fait!!!!!!!!!!!!
superbe portrait qu’il faut que tu poste non pas ici mais sur le forum  »crĂ©ations artistiques »
superbe portrait qu’il faut que tu poste non pas ici mais sur le forum  »crĂ©ations artistiques »