diff --git a/setup/compiler.class.inc.php b/setup/compiler.class.inc.php
index 47ca52ad2..82b542696 100644
--- a/setup/compiler.class.inc.php
+++ b/setup/compiler.class.inc.php
@@ -2836,24 +2836,22 @@ EOF;
/** @var \DOMNodeList $oVariables */
$oVariables = $oTheme->GetNodes('variables/variable');
- foreach($oVariables as $oVariable)
- {
+ foreach ($oVariables as $oVariable) {
$sVariableId = $oVariable->getAttribute('id');
$aThemeParameters['variables'][$sVariableId] = $oVariable->GetText();
}
/** @var \DOMNodeList $oImports */
$oImports = $oTheme->GetNodes('imports/import');
- foreach($oImports as $oImport)
- {
+ foreach ($oImports as $oImport) {
$sImportId = $oImport->getAttribute('id');
- if($oImport->getAttribute('xsi:type') === 'variables')
- {
+ $sImportType = $oImport->getAttribute('xsi:type');
+ if ($sImportType === 'variables') {
$aThemeParameters['variable_imports'][$sImportId] = $oImport->GetText();
- }
- else
- {
+ } elseif ($sImportType === 'utilities') {
$aThemeParameters['utility_imports'][$sImportId] = $oImport->GetText();
+ } else {
+ SetupLog::Warning('CompileThemes: Theme #'.$sThemeId.' has an import (#'.$sImportId.') without explicit xsi:type, it will be ignored. Check Datamodel XML Reference to fix it.');
}
}
diff --git a/test/setup/MFCompilerTest.php b/test/setup/MFCompilerTest.php
index 6e81789a3..b4ae72dfb 100644
--- a/test/setup/MFCompilerTest.php
+++ b/test/setup/MFCompilerTest.php
@@ -173,11 +173,11 @@ class MFCompilerTest extends ItopTestCase {
'ibo-page-banner--text-color' => '$ibo-color-red-100',
'ibo-page-banner--text-content' => '"THIS IS A TEST INSTANCE"',
],
- 'variable_imports' => [ 'style2' => 'style2.scss'],
- 'utility_imports' => [ 'style1' => 'style1.scss', 'style3' => 'style3.scss'],
+ 'variable_imports' => ['ok-because-xsi-type-variables' => 'ok-because-xsi-type-variables.scss'],
+ 'utility_imports' => ['ok-because-xsi-type-utilities' => 'ok-because-xsi-type-utilities.scss'],
'stylesheets' => [
"fullmoon" => '../css/backoffice/main.scss',
- "environment-banner" => '../css/backoffice/themes/page-banner.scss'
+ "environment-banner" => '../css/backoffice/themes/page-banner.scss',
],
];
diff --git a/test/setup/ressources/datamodels/datamodel-branding.xml b/test/setup/ressources/datamodels/datamodel-branding.xml
index 210165e14..ad3623175 100644
--- a/test/setup/ressources/datamodels/datamodel-branding.xml
+++ b/test/setup/ressources/datamodels/datamodel-branding.xml
@@ -9,9 +9,9 @@
"THIS IS A TEST INSTANCE"
- style1.scss
- style2.scss
- style3.scss
+ ignored-because-lack-xsi-type.scss
+ ok-because-xsi-type-variables.scss
+ ok-because-xsi-type-utilities.scss
../css/backoffice/main.scss