From b4371200f5e284a9f60c43f34d613d4ed7deb8fc Mon Sep 17 00:00:00 2001 From: Benjamin DALSASS Date: Thu, 16 Jul 2026 14:56:38 +0200 Subject: [PATCH] =?UTF-8?q?N=C2=B09807=20-=20Polishing=20CKEditor=20for=20?= =?UTF-8?q?iTop=203.3.0-beta1=20-=20create=20new=20function=20in=20attribu?= =?UTF-8?q?te=20definition=20to=20get=20the=20short=20classname=20of=20the?= =?UTF-8?q?=20attribute=20-=20fix=20iTop=20attribute=20class=20fields=20da?= =?UTF-8?q?ta=20injection?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/cmdbabstract.class.inc.php | 4 ++-- .../portal/src/Controller/ManageBrickController.php | 2 +- .../portal/src/Controller/ObjectController.php | 4 ++-- .../portal/src/Helper/BrowseBrickHelper.php | 4 ++-- .../Base/Component/DataTable/DataTableUIBlockFactory.php | 4 ++-- sources/Core/AttributeDefinition/AttributeDefinition.php | 8 +++++++- .../Bootstrap/FieldRenderer/BsLinkedSetFieldRenderer.php | 2 +- 7 files changed, 17 insertions(+), 11 deletions(-) diff --git a/application/cmdbabstract.class.inc.php b/application/cmdbabstract.class.inc.php index 364b2a4d2..af72499fd 100644 --- a/application/cmdbabstract.class.inc.php +++ b/application/cmdbabstract.class.inc.php @@ -1046,7 +1046,7 @@ HTML // Add extra data for markup generation // - Attribute code and AttributeDef. class $val['attcode'] = $sAttCode; - $val['atttype'] = $oAttDef->GetType(); + $val['atttype'] = $oAttDef->GetTypeShortClassName(); $val['attlabel'] = $sAttLabel; $val['attflags'] = ($bEditMode) ? $this->GetFormAttributeFlags($sAttCode) : OPT_ATT_READONLY; @@ -4507,7 +4507,7 @@ HTML; $oDivField = FieldUIBlockFactory::MakeLarge(""); // UIContentBlockUIBlockFactory::MakeStandard(null,["field_container field_large"]); - $oDivField->AddDataAttribute("attribute-type", $oAttDef->GetType()); + $oDivField->AddDataAttribute("attribute-type", $oAttDef->GetTypeShortClassName()); $oDivField->AddDataAttribute("attribute-label", $sAttMetaDataLabel); $oDivField->AddDataAttribute("attribute-flag-hidden", false); $oDivField->AddDataAttribute("attribute-flag-read-only", false); diff --git a/datamodels/2.x/itop-portal-base/portal/src/Controller/ManageBrickController.php b/datamodels/2.x/itop-portal-base/portal/src/Controller/ManageBrickController.php index 02c23595f..c4ad3a624 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Controller/ManageBrickController.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Controller/ManageBrickController.php @@ -689,7 +689,7 @@ class ManageBrickController extends BrickController $sValue = $oAttDef->GetAsHTML($oCurrentRow->Get($sItemAttr)); $sSortValue = $oCurrentRow->Get($sItemAttr); } - $sAttType = $oAttDef->GetType(); + $sAttType = $oAttDef->GetTypeShortClassName(); unset($oAttDef); // For simple fields, we get the raw (stored) value as well diff --git a/datamodels/2.x/itop-portal-base/portal/src/Controller/ObjectController.php b/datamodels/2.x/itop-portal-base/portal/src/Controller/ObjectController.php index 07627b9e5..88c01dc90 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Controller/ObjectController.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Controller/ObjectController.php @@ -1385,7 +1385,7 @@ class ObjectController extends BrickController 'object_id' => $oNewLink->GetKey(), 'prefix' => 'lnk__', 'attribute_code' => $sAttCode, - 'attribute_type' => $oAttDef->GetType(), + 'attribute_type' => $oAttDef->GetTypeShortClassName(), 'value_html' => $sValue, ]; @@ -1442,7 +1442,7 @@ class ObjectController extends BrickController 'object_class' => $sObjectClass, 'object_id' => $oObject->GetKey(), 'attribute_code' => $oAttDef->GetCode(), - 'attribute_type' => $oAttDef->GetType(), + 'attribute_type' => $oAttDef->GetTypeShortClassName(), ]; // - Value raw diff --git a/datamodels/2.x/itop-portal-base/portal/src/Helper/BrowseBrickHelper.php b/datamodels/2.x/itop-portal-base/portal/src/Helper/BrowseBrickHelper.php index 95e69c7e7..b14e5b410 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Helper/BrowseBrickHelper.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Helper/BrowseBrickHelper.php @@ -324,7 +324,7 @@ class BrowseBrickHelper 'object_class' => $sCurrentObjectClass, 'object_id' => $sCurrentObjectId, 'attribute_code' => $sNameAttCode, - 'attribute_type' => $sNameAttDef->GetType(), + 'attribute_type' => $sNameAttDef->GetTypeShortClassName(), 'value_raw' => $value->Get($sNameAttCode), ], ]; @@ -415,7 +415,7 @@ class BrowseBrickHelper 'object_class' => $sCurrentObjectClass, 'object_id' => $sCurrentObjectId, 'attribute_code' => $aField['code'], - 'attribute_type' => $oAttDef->GetType(), + 'attribute_type' => $oAttDef->GetTypeShortClassName(), 'value_raw' => $attValueRaw, 'value_html' => $sHtmlForFieldValue, ]; diff --git a/sources/Application/UI/Base/Component/DataTable/DataTableUIBlockFactory.php b/sources/Application/UI/Base/Component/DataTable/DataTableUIBlockFactory.php index f061f841e..0032e07c6 100644 --- a/sources/Application/UI/Base/Component/DataTable/DataTableUIBlockFactory.php +++ b/sources/Application/UI/Base/Component/DataTable/DataTableUIBlockFactory.php @@ -555,7 +555,7 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory 'object_class' => $sClassName, 'class_alias' => $sClassAlias, 'attribute_code' => $sAttCode, - 'attribute_type' => $oAttDef->GetType(), + 'attribute_type' => $oAttDef->GetTypeShortClassName(), 'attribute_label' => $sAttLabel, 'render' => $oAttDef->GetRenderForDataTable($sClassAlias), ]; @@ -737,7 +737,7 @@ JS; 'object_class' => $sClassName, 'class_alias' => $sClassAlias, 'attribute_code' => $sAttCode, - 'attribute_type' => $oAttDef->GetType(), + 'attribute_type' => $oAttDef->GetTypeShortClassName(), 'attribute_label' => $sAttLabel, ]; $aColumnDefinition["data"] = $sClassAlias."/".$sAttCode; diff --git a/sources/Core/AttributeDefinition/AttributeDefinition.php b/sources/Core/AttributeDefinition/AttributeDefinition.php index 359d5c7de..e24f1861c 100644 --- a/sources/Core/AttributeDefinition/AttributeDefinition.php +++ b/sources/Core/AttributeDefinition/AttributeDefinition.php @@ -136,6 +136,12 @@ abstract class AttributeDefinition return Dict::S('Core:'.$oClass->getShortName()); } + public function GetTypeShortClassName() + { + $oClass = new ReflectionClass(get_class($this)); + return $oClass->getShortName(); + } + public function GetTypeDesc() { $oClass = new ReflectionClass(get_class($this)); @@ -1095,7 +1101,7 @@ abstract class AttributeDefinition // Metadata $oFormField->AddMetadata('attribute-code', $this->GetCode()); - $oFormField->AddMetadata('attribute-type', $this->GetType()); + $oFormField->AddMetadata('attribute-type', $this->GetTypeShortClassName()); $oFormField->AddMetadata('attribute-label', $this->GetLabel()); // - Attribute flags $aPossibleAttFlags = MetaModel::EnumPossibleAttributeFlags(); diff --git a/sources/Renderer/Bootstrap/FieldRenderer/BsLinkedSetFieldRenderer.php b/sources/Renderer/Bootstrap/FieldRenderer/BsLinkedSetFieldRenderer.php index 59553b6b6..64c0d5da5 100644 --- a/sources/Renderer/Bootstrap/FieldRenderer/BsLinkedSetFieldRenderer.php +++ b/sources/Renderer/Bootstrap/FieldRenderer/BsLinkedSetFieldRenderer.php @@ -852,7 +852,7 @@ JS 'object_class' => $sClass, 'object_id' => $oItem->GetKey(), 'attribute_code' => $sAttCode, - 'attribute_type' => $oAttDef->GetType(), + 'attribute_type' => $oAttDef->GetTypeShortClassName(), ]; // - Value raw // For simple fields, we get the raw (stored) value as well