59 lines
1.9 KiB
PHP
59 lines
1.9 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
/**
|
|
* Diagnose: what does ProductXlsxReader actually extract from a workbook?
|
|
*
|
|
* Standalone on purpose - the reader has no TYPO3 dependencies, only
|
|
* PhpSpreadsheet, so composer's autoloader is all it needs. That makes this the
|
|
* exact code path the backend module runs, without cache or session in the way.
|
|
*
|
|
* Usage: php migrations/check_workbook.php migrations/aligo-test.xlsx
|
|
*/
|
|
|
|
require __DIR__ . '/../vendor/autoload.php';
|
|
|
|
$file = $argv[1] ?? '';
|
|
if ($file === '' || !is_file($file)) {
|
|
exit("Usage: php migrations/check_workbook.php <file.xlsx>\n");
|
|
}
|
|
|
|
$reader = new \Evomedien\Vitec\Import\ProductXlsxReader();
|
|
$parsed = $reader->parse($file);
|
|
|
|
echo "pageType : " . $parsed['pageType'] . "\n";
|
|
echo "meta : " . json_encode($parsed['meta'], JSON_UNESCAPED_UNICODE) . "\n";
|
|
echo "seo keys : " . implode(' | ', array_keys($parsed['seo'])) . "\n";
|
|
echo "components: " . count($parsed['components']) . "\n\n";
|
|
|
|
printf("%-3s %-34s %-3s %-28s %-9s %-12s\n", '#', 'component', 'occ', 'title', 'body-len', 'cta-in-body');
|
|
foreach ($parsed['components'] as $c) {
|
|
printf(
|
|
"%-3d %-34s %-3d %-28s %-9d %s\n",
|
|
$c['order'],
|
|
mb_substr($c['component'], 0, 34),
|
|
$c['occurrence'],
|
|
mb_substr($c['title'], 0, 28),
|
|
mb_strlen((string)$c['body']),
|
|
str_contains((string)$c['body'], '| CTA:') ? 'yes' : '-'
|
|
);
|
|
}
|
|
|
|
echo "\n--- Composed sources (g:) ---\n";
|
|
foreach (($reader->sources($parsed)['Composed'] ?? []) as $entry) {
|
|
echo $entry['selector'] . "\n";
|
|
echo " label: " . $entry['label'] . "\n";
|
|
echo " html : " . $entry['value'] . "\n\n";
|
|
}
|
|
|
|
echo "\n--- Related Product Cards, raw ---\n";
|
|
foreach ($parsed['components'] as $c) {
|
|
if ($c['component'] !== 'Related Product Card') {
|
|
continue;
|
|
}
|
|
echo "title: [" . $c['title'] . "]\n";
|
|
echo "body : [" . $c['body'] . "]\n";
|
|
echo "cta : [" . $c['cta'] . "]\n\n";
|
|
}
|