ferrero-opentext/test_creativex.php
DJP b273fdafee Fix CREATIVEX extraction - detect at category level not field level
Issue: CREATIVEX fields still not appearing
Root Cause: FERRERO.FIELD.CREATIX is a CATEGORY, not a field within a category

Fix:
- Check category ID/name for 'CREATIX' or 'CreativeX'
- When CREATIVEX category found, extract ALL items within it
- Handle both tables and direct fields in CREATIVEX category
- Show fields even if empty (displays structure)

Structure:
Category: FERRERO.FIELD.CREATIX (name: CreativeX)
  ├─ Table: FERRERO.TABULAR.FIELD.CREATIVEX (Confidence)
  │   └─ Field: FERRERO.TAB.FIELD.CREATIVEX (Platform > Rating %)
  └─ Field: FERRERO.FIELD.CREATIVEX LINK (CreativeX Hyperlink)

Test Results:
 Extracted 2 CREATIVEX fields
 Platform > Rating (%): (empty)
 CreativeX Hyperlink: (empty)

Now purple CREATIVEX section will appear in metadata viewer!

🤖 Generated with Claude Code
2025-10-31 11:29:06 -04:00

35 lines
1.4 KiB
PHP

<?php
require_once 'src/MetadataExtractor.php';
$assetJson = file_get_contents('downloads/06_RAFFAELLO_MAESTRO_SD_metadata.json');
$asset = json_decode($assetJson, true);
// Find CREATIX/CREATIVEX in metadata
echo "Searching for CREATIVEX fields..." . PHP_EOL . PHP_EOL;
if (isset($asset['metadata']['metadata_element_list'])) {
foreach ($asset['metadata']['metadata_element_list'] as $catIndex => $category) {
$catId = $category['id'] ?? 'no-id';
$catName = $category['name'] ?? 'no-name';
if (stripos($catId, 'CREATIX') !== false || stripos($catId, 'CREATIVEX') !== false ||
stripos($catName, 'CreativeX') !== false) {
echo "Found Category #{$catIndex}:" . PHP_EOL;
echo " ID: {$catId}" . PHP_EOL;
echo " Name: {$catName}" . PHP_EOL;
echo " Structure:" . PHP_EOL;
echo json_encode($category, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) . PHP_EOL . PHP_EOL;
}
}
}
// Test extraction
$metadata = MetadataExtractor::extractAllMetadata($asset);
echo "Extracted CREATIVEX fields: " . count($metadata['creativex_fields']) . PHP_EOL;
if (!empty($metadata['creativex_fields'])) {
foreach ($metadata['creativex_fields'] as $name => $data) {
$val = is_array($data['value']) ? implode(', ', $data['value']) : $data['value'];
echo " - {$name}: {$val}" . PHP_EOL;
}
}