N°8772 - Compiler: add static inputs

This commit is contained in:
Eric Espie
2025-12-10 17:53:31 +01:00
parent c40e7ab10e
commit 4d7183e067
6 changed files with 65 additions and 1 deletions

View File

@@ -8,6 +8,7 @@
namespace Combodo\iTop\PropertyTree\ValueType;
use Combodo\iTop\DesignElement;
use utils;
/**
* @since 3.3.0
@@ -16,8 +17,23 @@ abstract class AbstractValueType
{
abstract public function GetFormBlockClass(): string;
protected array $aInputs = [];
public function InitFromDomNode(DesignElement $oDomNode): void
{
$sBlockNodeClass = $this->GetFormBlockClass();
$oBlockNode = new $sBlockNodeClass('foo');
foreach ($oBlockNode->GetInputs() as $oInput) {
$sInputName = $oInput->GetName();
$sInputValue = $oDomNode->GetChildText($sInputName);
if (utils::IsNotNullOrEmptyString($sInputValue)) {
$this->aInputs[$sInputName] = $sInputValue;
}
}
}
public function GetInputs(): array
{
return $this->aInputs;
}
}

View File

@@ -7,7 +7,9 @@
namespace Combodo\iTop\PropertyTree\ValueType;
use Combodo\iTop\DesignElement;
use Combodo\iTop\Forms\Block\DataModel\AttributeChoiceFormBlock;
use utils;
/**
* @since 3.3.0

View File

@@ -29,6 +29,12 @@ class ValueTypeFactory
return static::$oInstance;
}
/**
* @param \Combodo\iTop\DesignElement $oDomNode
*
* @return \Combodo\iTop\PropertyTree\ValueType\AbstractValueType
* @throws \Combodo\iTop\PropertyTree\PropertyTreeException
*/
public function CreateValueTypeFromDomNode(DesignElement $oDomNode): AbstractValueType
{
$sNodeType = $oDomNode->getAttribute('xsi:type');