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']);
}
Nouvelles d'Isabelle et Jacques ! - Oasis des Artistes. Le plus beau site de poésie
Aller au contenu
Ce sujet contient 3 réponses, 4 participants et a Ă©tĂ© mis Ă jour pour la derniĂšre fois par poete1947 , le 30-04-2006 21:52 .
Je viens d’avoir un appel de notre chĂšre Isabelle et comme beaucoup d’entre-vous m’ont demandĂ© des nouvelles alors avec son accord, je vous les transmets car elle est toujours en panne d’informatique.
HĂ©las, il n’y a plus beaucoup d’espoir pour notre cher Jacques, il est toujours Ă l’hopital et maintenant en soins palliatifs.
Réunissons toutes et tous nos pensées positives pour eux deux et que celles et ceux qui savent prier, prient trÚs fort !
Je suis profondément triste et désolée !
Gros bisous
Plume de platine â
â
â
â
â
â
Nouchka
Sujet: 135 Réponses: 3810
Bonsoir Adeline,
Les nouvelles que nous apportent sont hĂ©lĂ s celles auxquelles je m’attendais. Et je suis submergĂ©e par l’Ă©motion. Jacques ça ne fait que 4,5 mois que je connais via le web comme vous tous d’ailleurs mais j’ai l’impression que lui et Isa sont des amis de longue date. Alors bien sĂ»r que je vais continuer Ă prier pour eux, pour lui pour qu’il ne souffre pas trop, et pour Isa afin que mes priĂšres l’aident Ă traverser cette terrible Ă©preuve. J’ai vraiment aujourd’hui un sentiment d’injustice, eux qui s’aimaient si forts vont ĂȘtre sĂ©parĂ©s…Et j’ai aussi un sentiment d’impuissance qui me rend trĂšs triste.
Merci en tous cas de nous avoir tenu informés.
Bisous et bisous Ă vous tous qui soutenez nos deux amis.
Nat
đ
La Musique est une r?v?lation sup?rieure ? toute sagesse ou philosophie (Ludwig Van Beethoven)
Plume de diamant â
â
â
â
â
â
Laesilia
Sujet: 2427 Réponses: 15969
Je viens de découvrir ce post avec le coeur lourd et des larmes plein les yeux.
Je cotoie la maladie assez souvent pour savoir Ă quel point il est dur de voir ceux que l’on aime souffrir.
Je souhaite beaucoup de courage à Jacques, mais également beaucoup à Isa qui aura vraiment besoin de tout notre soutien.
Merci Adeline pour ces infos, si tu as Isabelle, dis lui bien que je pense trĂšs fort Ă eux deux et que ce soir mes priĂšres iront vers eux
Ghis đ đ
Plume de diamant â
â
â
â
â
â
poete1947
Sujet: 1581 Réponses: 13741
Merci Eolienne, j’attendais impatiemment d’avoir des nouvelles de Jacques et d’Isabelle…. J’aurais prĂ©fĂ©rĂ© avoir d’autres nouvelles mais je m’y attendais un peu comme tout le monde…… Le site va perdre un grand poĂšte, un grand amoureux et un vrai ami…..
Nous prierons pour que Jacques ne souffre pas et qu’il s’en aille tranquillement…. et pour Isabelle afin qu’elle aie la force de se battre en souvenir de lui….
Mon coeur est en deuil car tout le monde l’aimait……
Bisous Ă eux deux…..
Vous devez être connecté pour répondre à ce sujet.
Pour offrir les meilleures expériences, nous utilisons des technologies telles que les cookies pour stocker et/ou accéder aux informations des appareils. Le fait de consentir à ces technologies nous permettra de traiter des données telles que le comportement de navigation ou les ID uniques sur ce site. Le fait de ne pas consentir ou de retirer son consentement peut avoir un effet négatif sur certaines caractéristiques et fonctions.
LâaccĂšs ou le stockage technique est strictement nĂ©cessaire dans la finalitĂ© dâintĂ©rĂȘt lĂ©gitime de permettre lâutilisation dâun service spĂ©cifique explicitement demandĂ© par lâabonnĂ© ou lâutilisateur, ou dans le seul but dâeffectuer la transmission dâune communication sur un rĂ©seau de communications Ă©lectroniques.
LâaccĂšs ou le stockage technique est nĂ©cessaire dans la finalitĂ© dâintĂ©rĂȘt lĂ©gitime de stocker des prĂ©fĂ©rences qui ne sont pas demandĂ©es par lâabonnĂ© ou lâinternaute.
Le stockage ou lâaccĂšs technique qui est utilisĂ© exclusivement Ă des fins statistiques.
Le stockage ou lâaccĂšs technique qui est utilisĂ© exclusivement dans des finalitĂ©s statistiques anonymes. En lâabsence dâune assignation Ă comparaĂźtre, dâune conformitĂ© volontaire de la part de votre fournisseur dâaccĂšs Ă internet ou dâenregistrements supplĂ©mentaires provenant dâune tierce partie, les informations stockĂ©es ou extraites Ă cette seule fin ne peuvent gĂ©nĂ©ralement pas ĂȘtre utilisĂ©es pour vous identifier.
LâaccĂšs ou le stockage technique est nĂ©cessaire pour crĂ©er des profils dâinternautes afin dâenvoyer des publicitĂ©s, ou pour suivre lâutilisateur sur un site web ou sur plusieurs sites web ayant des finalitĂ©s marketing similaires.
Gérer le consentement