From 873ebab6bce2cddc87500ed00627279747672e41 Mon Sep 17 00:00:00 2001 From: ingoj <120396930+ingoj@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:27:41 +0200 Subject: [PATCH 1/5] fix some import issues read xml_base from manifest, resources and each resource. Entries are combined in the order. Some minor code streamlining (put all select statements into variables before launching db queries) Move declare_strict below copyright notice --- .../SCORM/class.ilObjSCORMInitData.php | 58 ++++++++++++++----- 1 file changed, 43 insertions(+), 15 deletions(-) diff --git a/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php b/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php index f2a6028011b5..f801cd1b6967 100755 --- a/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php +++ b/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php @@ -1,7 +1,5 @@ queryF( - " - SELECT sc_resource.obj_id - FROM scorm_tree, sc_resource - WHERE scorm_tree.slm_id=%s - AND sc_resource.obj_id=scorm_tree.child", + $resource_query = "SELECT sc_resource.obj_id + FROM scorm_tree, sc_resource + WHERE scorm_tree.slm_id=%s + AND sc_resource.obj_id=scorm_tree.child"; + $val_set = $ilDB->queryF( + $resource_query, array('integer'), array($a_packageId) ); @@ -261,14 +261,42 @@ public static function getIliasScormResources(int $a_packageId): string } $s_resourceIds = substr($s_resourceIds, 1); - $tquery = "SELECT scorm_tree.lft, scorm_tree.child, + $xml_base_prefix = ''; + $xml_query = "SELECT xml_base + FROM sc_manifest + WHERE obj_id in + (SELECT child from scorm_tree WHERE slm_id=%s)"; + $val_set = ilDB->queryF( + $xml_query, + array('integer') + array($a_packageId) + ); + while ($val_rec = $ilDB->fetchAssoc($val_set)) { + $xml_base_prefix .= $val_rec["xml_base"]; + } + + $xml_query = "SELECT xml_base + FROM sc_resources + WHERE obj_id in + (SELECT child from scorm_tree WHERE slm_id=%s)"; + $val_set = $ilDB->queryF( + $xml_query, + array('integer'), + array($a_packageId) + ); + while ($val_rec = $ilDB->fetchAssoc($val_set)) { + $xml_base_prefix .= $val_rec["xml_base"]; + } + + $tquery = "SELECT scorm_tree.lft, scorm_tree.child, CASE WHEN sc_resource.scormtype = 'asset' THEN 1 ELSE 0 END AS asset, - sc_resource.href + sc_resource.href, + sc_resource.xml_base FROM scorm_tree, sc_resource, sc_item - WHERE scorm_tree.slm_id=%s - AND sc_item.obj_id=scorm_tree.child - AND sc_resource.import_id=sc_item.identifierref - AND sc_resource.obj_id in (" . $s_resourceIds . ") + WHERE scorm_tree.slm_id=%s + AND sc_item.obj_id=scorm_tree.child + AND sc_resource.import_id=sc_item.identifierref + AND sc_resource.obj_id in (" . $s_resourceIds . ") ORDER BY scorm_tree.lft"; $val_set = $ilDB->queryF( $tquery, @@ -277,7 +305,7 @@ public static function getIliasScormResources(int $a_packageId): string ); while ($val_rec = $ilDB->fetchAssoc($val_set)) { // $s_out.='['.$val_rec["lft"].','.$val_rec["child"].','.$val_rec["asset"].',"'.self::encodeURIComponent($val_rec["href"]).'"],'; - $a_out[] = array( (int) $val_rec["lft"], (int) $val_rec["child"], (int) $val_rec["asset"], self::encodeURIComponent($val_rec["href"]) ); + $a_out[] = array( (int) $val_rec["lft"], (int) $val_rec["child"], (int) $val_rec["asset"], self::encodeURIComponent($xml_base_prefix . $val_rec["xml_base"] . $val_rec["href"]) ); } // if(substr($s_out,(strlen($s_out)-1))==",") $s_out=substr($s_out,0,(strlen($s_out)-1)); // return "[".$s_out."]"; From 6433cc5d16d7b0eadfbd38aa2c677fe9913a5501 Mon Sep 17 00:00:00 2001 From: ingoj <120396930+ingoj@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:31:21 +0200 Subject: [PATCH 2/5] fix typo --- .../ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php b/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php index f801cd1b6967..d17c15ba7ece 100755 --- a/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php +++ b/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php @@ -268,7 +268,7 @@ public static function getIliasScormResources(int $a_packageId): string (SELECT child from scorm_tree WHERE slm_id=%s)"; $val_set = ilDB->queryF( $xml_query, - array('integer') + array('integer'), array($a_packageId) ); while ($val_rec = $ilDB->fetchAssoc($val_set)) { From 05f21db6b834ee918904c70dc74e06439b1f2992 Mon Sep 17 00:00:00 2001 From: ingoj <120396930+ingoj@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:43:44 +0200 Subject: [PATCH 3/5] cs fixes --- .../SCORM/class.ilObjSCORMInitData.php | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php b/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php index d17c15ba7ece..110261e16005 100755 --- a/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php +++ b/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php @@ -251,8 +251,8 @@ public static function getIliasScormResources(int $a_packageId): string FROM scorm_tree, sc_resource WHERE scorm_tree.slm_id=%s AND sc_resource.obj_id=scorm_tree.child"; - $val_set = $ilDB->queryF( - $resource_query, + $val_set = $ilDB->queryF( + $resource_query, array('integer'), array($a_packageId) ); @@ -261,32 +261,32 @@ public static function getIliasScormResources(int $a_packageId): string } $s_resourceIds = substr($s_resourceIds, 1); - $xml_base_prefix = ''; - $xml_query = "SELECT xml_base + $xml_base_prefix = ''; + $xml_query = "SELECT xml_base FROM sc_manifest WHERE obj_id in (SELECT child from scorm_tree WHERE slm_id=%s)"; - $val_set = ilDB->queryF( - $xml_query, - array('integer'), - array($a_packageId) - ); - while ($val_rec = $ilDB->fetchAssoc($val_set)) { - $xml_base_prefix .= $val_rec["xml_base"]; - } + $val_set = ilDB->queryF( + $xml_query, + array('integer'), + array($a_packageId) + ); + while ($val_rec = $ilDB->fetchAssoc($val_set)) { + $xml_base_prefix .= $val_rec["xml_base"]; + } - $xml_query = "SELECT xml_base + $xml_query = "SELECT xml_base FROM sc_resources WHERE obj_id in (SELECT child from scorm_tree WHERE slm_id=%s)"; - $val_set = $ilDB->queryF( - $xml_query, - array('integer'), - array($a_packageId) - ); - while ($val_rec = $ilDB->fetchAssoc($val_set)) { - $xml_base_prefix .= $val_rec["xml_base"]; - } + $val_set = $ilDB->queryF( + $xml_query, + array('integer'), + array($a_packageId) + ); + while ($val_rec = $ilDB->fetchAssoc($val_set)) { + $xml_base_prefix .= $val_rec["xml_base"]; + } $tquery = "SELECT scorm_tree.lft, scorm_tree.child, CASE WHEN sc_resource.scormtype = 'asset' THEN 1 ELSE 0 END AS asset, From c131efde385d8ff1ceb1664e599d513ea010329f Mon Sep 17 00:00:00 2001 From: ingoj <120396930+ingoj@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:45:12 +0200 Subject: [PATCH 4/5] more cs fix --- .../ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php b/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php index 110261e16005..81eb2ecd2b82 100755 --- a/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php +++ b/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php @@ -287,7 +287,7 @@ public static function getIliasScormResources(int $a_packageId): string while ($val_rec = $ilDB->fetchAssoc($val_set)) { $xml_base_prefix .= $val_rec["xml_base"]; } - + $tquery = "SELECT scorm_tree.lft, scorm_tree.child, CASE WHEN sc_resource.scormtype = 'asset' THEN 1 ELSE 0 END AS asset, sc_resource.href, From 3772c2c25f6ef7063dda7d3e5ebcb8fcc89388d4 Mon Sep 17 00:00:00 2001 From: ingoj <120396930+ingoj@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:57:24 +0200 Subject: [PATCH 5/5] fix typo --- .../ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php b/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php index 81eb2ecd2b82..56e19b5e3a4b 100755 --- a/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php +++ b/components/ILIAS/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php @@ -266,7 +266,7 @@ public static function getIliasScormResources(int $a_packageId): string FROM sc_manifest WHERE obj_id in (SELECT child from scorm_tree WHERE slm_id=%s)"; - $val_set = ilDB->queryF( + $val_set = $ilDB->queryF( $xml_query, array('integer'), array($a_packageId)