Sequence Details:
Product Name:
Status:
Validation Report
Files in Sequence
No files found in this sequence.
index.xml Content
No index.xml content to display.
$sequenceId, 'productName' => 'N/A', 'status' => 'Unknown', 'files' => [], 'xml_content' => '', 'validation_errors' => [] ]; // List files in the directory $files = scandir($sequencePath); $details['files'] = array_diff($files, ['.', '..']); $xmlPath = $sequencePath . '/index.xml'; if (file_exists($xmlPath)) { $xmlContent = file_get_contents($xmlPath); $details['xml_content'] = htmlspecialchars($xmlContent); $errors = XmlValidator::validate($xmlContent); if (empty($errors)) { $details['status'] = 'Validated'; $xml = simplexml_load_string($xmlContent); if ($xml) { // Correctly parsing with namespace $namespaces = $xml->getNamespaces(true); $ectd_ns = isset($namespaces['ectd']) ? $namespaces['ectd'] : 'urn:ectd-org:ectd'; $xml->registerXPathNamespace('ectd', $ectd_ns); // Example of fetching a value, adjust xpath as per actual XML structure $result = $xml->xpath('//product-name'); // Simplified xpath if (empty($result)) { // Try another common path $result = $xml->xpath('//admin/product-name'); } if (!empty($result)) { $details['productName'] = (string)$result[0]; } else { $details['productName'] = 'N/A'; } } } else { $details['status'] = 'Validation Failed'; $details['validation_errors'] = $errors; } } else { $details['status'] = 'Missing index.xml'; } return $details; } $sequenceId = isset($_GET['id']) ? basename($_GET['id']) : ''; $sequenceDetails = null; $uploadMessage = ''; // Handle file upload if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['sequenceFile'])) { if (!empty($sequenceId) && is_numeric($sequenceId)) { $targetDir = __DIR__ . '/repository/' . $sequenceId . '/'; if (!is_dir($targetDir)) { mkdir($targetDir, 0775, true); } $targetFile = $targetDir . basename($_FILES['sequenceFile']['name']); if (move_uploaded_file($_FILES['sequenceFile']['tmp_name'], $targetFile)) { $uploadMessage = '
Product Name:
Status:
No files found in this sequence.
No index.xml content to display.