diff --git a/main/exercice/export/exercise_import.inc.php b/main/exercice/export/exercise_import.inc.php index 6454593efb..059cd4f79f 100755 --- a/main/exercice/export/exercise_import.inc.php +++ b/main/exercice/export/exercise_import.inc.php @@ -124,17 +124,22 @@ function import_exercise($file) $questionHandle = opendir($baseWorkDir . '/' . $file); while (false !== ($questionFile = readdir($questionHandle))) { if (preg_match('/.xml$/i', $questionFile)) { - $result = qti_parse_file($baseWorkDir, $file, $questionFile); - $filePath = $baseWorkDir . $file; - $file_found = true; + $isQti = isQtiQuestionBank($baseWorkDir . '/' . $file . '/' . $questionFile); + if ($isQti) { + $result = qti_parse_file($baseWorkDir, $file, $questionFile); + $filePath = $baseWorkDir . $file; + $file_found = true; + } } } } elseif (preg_match('/.xml$/i', $file)) { - - // Else ignore file - $result = qti_parse_file($baseWorkDir, '', $file); - $filePath = $baseWorkDir . '/' . $file; - $file_found = true; + $isQti = isQtiQuestionBank($baseWorkDir . '/' . $file); + //$isManifest = isQtiManifest($baseWorkDir . '/' . $file); + if ($isQti) { + $result = qti_parse_file($baseWorkDir, '', $file); + $filePath = $baseWorkDir . '/' . $file; + $file_found = true; + } } } @@ -899,3 +904,24 @@ function elementDataQti1($parser, $data) } } + +function isQtiQuestionBank($filePath) { + $data = file_get_contents($filePath); + if (!empty($data)) { + $match = preg_match('/ims_qtiasiv(\d)p(\d)/', $data); + if ($match) { + return true; + } + } + return false; +} +function isQtiManifest($filePath) { + $data = file_get_contents($filePath); + if (!empty($data)) { + $match = preg_match('/imsccv(\d)p(\d)/', $data); + if ($match) { + return true; + } + } + return false; +} \ No newline at end of file