From 5829e698da297002ecb6042545290b167fb11338 Mon Sep 17 00:00:00 2001 From: Molkobain Date: Tue, 9 Aug 2022 17:19:21 +0200 Subject: [PATCH 1/2] Fix typo --- datamodels/2.x/itop-oauth-client/cs.dict.itop-oauth-client.php | 2 +- datamodels/2.x/itop-oauth-client/da.dict.itop-oauth-client.php | 2 +- datamodels/2.x/itop-oauth-client/en.dict.itop-oauth-client.php | 2 +- .../2.x/itop-oauth-client/es_cr.dict.itop-oauth-client.php | 2 +- datamodels/2.x/itop-oauth-client/hu.dict.itop-oauth-client.php | 2 +- datamodels/2.x/itop-oauth-client/it.dict.itop-oauth-client.php | 2 +- datamodels/2.x/itop-oauth-client/ja.dict.itop-oauth-client.php | 2 +- datamodels/2.x/itop-oauth-client/nl.dict.itop-oauth-client.php | 2 +- .../2.x/itop-oauth-client/pt_br.dict.itop-oauth-client.php | 2 +- datamodels/2.x/itop-oauth-client/ru.dict.itop-oauth-client.php | 2 +- datamodels/2.x/itop-oauth-client/sk.dict.itop-oauth-client.php | 2 +- datamodels/2.x/itop-oauth-client/tr.dict.itop-oauth-client.php | 2 +- .../2.x/itop-oauth-client/zh_cn.dict.itop-oauth-client.php | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/datamodels/2.x/itop-oauth-client/cs.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/cs.dict.itop-oauth-client.php index ac3a5196f..accbc7cee 100644 --- a/datamodels/2.x/itop-oauth-client/cs.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/cs.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', [ // Dict::Add('CS CZ', 'Czech', 'Čeština', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/da.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/da.dict.itop-oauth-client.php index 5bcb967ee..6d593294c 100644 --- a/datamodels/2.x/itop-oauth-client/da.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/da.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', [ // Dict::Add('DA DA', 'Danish', 'Dansk', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/en.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/en.dict.itop-oauth-client.php index a8a0f4d9d..350afaa01 100644 --- a/datamodels/2.x/itop-oauth-client/en.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/en.dict.itop-oauth-client.php @@ -33,7 +33,7 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:OAuthClient' => 'Oauth Client', + 'Class:OAuthClient' => 'OAuth Client', 'Class:OAuthClient/Attribute:provider' => 'Provider', 'Class:OAuthClient/Attribute:provider+' => '', 'Class:OAuthClient/Attribute:name' => 'Login', diff --git a/datamodels/2.x/itop-oauth-client/es_cr.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/es_cr.dict.itop-oauth-client.php index 5baf5dbf9..31747d432 100644 --- a/datamodels/2.x/itop-oauth-client/es_cr.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/es_cr.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', [ // Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/hu.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/hu.dict.itop-oauth-client.php index 6c6287f9f..0ec445c19 100644 --- a/datamodels/2.x/itop-oauth-client/hu.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/hu.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', [ // Dict::Add('HU HU', 'Hungarian', 'Magyar', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/it.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/it.dict.itop-oauth-client.php index bc601ae8b..a8edf10e0 100644 --- a/datamodels/2.x/itop-oauth-client/it.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/it.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('IT IT', 'Italian', 'Italiano', [ // Dict::Add('IT IT', 'Italian', 'Italiano', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/ja.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/ja.dict.itop-oauth-client.php index 1a5bdca02..61edd9435 100644 --- a/datamodels/2.x/itop-oauth-client/ja.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/ja.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', [ // Dict::Add('JA JP', 'Japanese', '日本語', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/nl.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/nl.dict.itop-oauth-client.php index 81d390251..79cc72903 100644 --- a/datamodels/2.x/itop-oauth-client/nl.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/nl.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', [ // Dict::Add('NL NL', 'Dutch', 'Nederlands', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/pt_br.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/pt_br.dict.itop-oauth-client.php index 150ac6fc6..e129bcd92 100644 --- a/datamodels/2.x/itop-oauth-client/pt_br.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/pt_br.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ // Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/ru.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/ru.dict.itop-oauth-client.php index b97fad178..c79644cff 100644 --- a/datamodels/2.x/itop-oauth-client/ru.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/ru.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [ // Dict::Add('RU RU', 'Russian', 'Русский', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/sk.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/sk.dict.itop-oauth-client.php index d1e15cc49..14c58c855 100644 --- a/datamodels/2.x/itop-oauth-client/sk.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/sk.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ // Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/tr.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/tr.dict.itop-oauth-client.php index 8ef119962..5df57e5e2 100644 --- a/datamodels/2.x/itop-oauth-client/tr.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/tr.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', [ // Dict::Add('TR TR', 'Turkish', 'Türkçe', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/zh_cn.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/zh_cn.dict.itop-oauth-client.php index e4f644fde..69e6fb6ba 100644 --- a/datamodels/2.x/itop-oauth-client/zh_cn.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/zh_cn.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', [ // Dict::Add('ZH CN', 'Chinese', '简体中文', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', From 69749a5cbea62e30619fb0c8a4b43e52e0466a63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20Espi=C3=A9?= Date: Tue, 9 Aug 2022 17:37:01 +0200 Subject: [PATCH 2/2] =?UTF-8?q?N=C2=B05375=20-=20XML=20custo=20on=20Semant?= =?UTF-8?q?ic=20field=20with=20hierarchy,=20breaks=20at=20compilation=20(#?= =?UTF-8?q?323)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup/compiler.class.inc.php | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/setup/compiler.class.inc.php b/setup/compiler.class.inc.php index 9f48ccf35..ed636380b 100644 --- a/setup/compiler.class.inc.php +++ b/setup/compiler.class.inc.php @@ -2012,7 +2012,11 @@ EOF // Note: We can't use ModelFactory::GetField() as the current clas doesn't seem to be loaded yet. $oField = $this->oFactory->GetNodes('field[@id="'.$sStateAttCode.'"]', $oFields)->item(0); if ($oField == null) { - throw new DOMFormatException("Non existing attribute '$sStateAttCode'", null, null, $oStateAttribute); + // Search field in parent class + $oField = $this->GetFieldInParentClasses($oClass, $sStateAttCode); + if ($oField == null) { + throw new DOMFormatException("Non existing attribute '$sStateAttCode'", null, null, $oStateAttribute); + } } $oValues = $oField->GetUniqueElement('values'); $oValueNodes = $oValues->getElementsByTagName('value'); @@ -3736,4 +3740,19 @@ EOF; return $sValue; } + + private function GetFieldInParentClasses($oClass, $sAttCode) + { + $sParentClass = $oClass->GetChildText('parent', 'DBObject'); + if ($sParentClass != 'DBObject') { + $oParent = $this->oFactory->GetClass($sParentClass); + $oParentFields = $oParent->GetOptionalElement('fields'); + $oField = $this->oFactory->GetNodes('field[@id="'.$sAttCode.'"]', $oParentFields)->item(0); + if ($oField != null) { + return $oField; + } + return $this->GetFieldInParentClasses($oParent, $sAttCode); + } + return null; + } }