PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC] ); echo $apply ? "== APPLY ==\n" : "== DRY RUN (add --apply to write) ==\n"; // news uid => usecase (story) uid $pairs = [ 361 => 56, // Denver Sportsbook Bar & Grill 121 => 24, // European Space Agency 164 => 26, // Feature Story News 336 => 62, // Kyndryl Cyber Operations Center 388 => 74, // Leading Video Capture for the Medical Market 239 => 66, // RRS Sir David Attenborough 158 => 46, // Sacramento Kings 310 => 68, // SENTRY Video Walls – 2024 Olympic Games 290 => 72, // UK Mission Critical Control Room 389 => 59, // Intercity Istanbul Park 436 => 64, // NHS tribute onto Parliament 395 => 54, // Bahrain International Circuit 327 => 60, // ITV News Headquarters ]; $news = $pdo->prepare("SELECT uid, title, path_segment, vitec_canonical_usecase FROM tx_news_domain_model_news WHERE deleted = 0 AND uid = ?"); $story = $pdo->prepare("SELECT uid, title, slug, hidden FROM tx_vitec_domain_model_usecase WHERE deleted = 0 AND uid = ?"); $update = $pdo->prepare("UPDATE tx_news_domain_model_news SET vitec_canonical_usecase = ?, tstamp = UNIX_TIMESTAMP() WHERE uid = ?"); $set = 0; $paths = []; foreach ($pairs as $newsUid => $storyUid) { $news->execute([$newsUid]); $n = $news->fetch(); $story->execute([$storyUid]); $s = $story->fetch(); if (!$n || !$s) { echo " #$newsUid -> #$storyUid: Datensatz fehlt, uebersprungen\n"; continue; } if ((int)$s['hidden'] === 1) { echo " #$newsUid -> #$storyUid: Story versteckt, uebersprungen\n"; continue; } $state = (int)$n['vitec_canonical_usecase'] === $storyUid ? 'schon gesetzt' : 'setzen'; printf(" news #%-4d %-70s -> story #%-3d /success-stories/%s [%s]\n", $newsUid, mb_substr($n['title'], 0, 70), $storyUid, $s['slug'], $state); $paths[] = '/news/article/' . $n['path_segment']; if ($state === 'setzen') { $set++; if ($apply) { $update->execute([$storyUid, $newsUid]); } } } echo "\n$set Zuordnung(en) " . ($apply ? 'geschrieben' : 'wuerden geschrieben') . ".\n"; echo "SSR-Pfade:\n " . implode("\n ", $paths) . "\n";