N°8772 - dynamic form

This commit is contained in:
Benjamin Dalsass
2025-11-05 15:52:23 +01:00
parent 9ea546ebf6
commit 5b7a1ee44f
4 changed files with 23 additions and 3 deletions

View File

@@ -494,6 +494,7 @@ return array(
'Combodo\\iTop\\Forms\\Block\\FormType\\ChoiceFormType' => $baseDir . '/sources/Forms/Block/FormType/ChoiceFormType.php',
'Combodo\\iTop\\Forms\\Block\\FormType\\CollectionFormType' => $baseDir . '/sources/Forms/Block/FormType/CollectionFormType.php',
'Combodo\\iTop\\Forms\\Block\\FormType\\FormType' => $baseDir . '/sources/Forms/Block/FormType/FormType.php',
'Combodo\\iTop\\Forms\\Block\\FormType\\FormTypeHelper' => $baseDir . '/sources/Forms/Block/FormType/FormTypeHelper.php',
'Combodo\\iTop\\Forms\\Block\\FormType\\OqlFormType' => $baseDir . '/sources/Forms/Block/FormType/OqlFormType.php',
'Combodo\\iTop\\Forms\\Block\\IO\\AbstractFormIO' => $baseDir . '/sources/Forms/Block/IO/AbstractFormIO.php',
'Combodo\\iTop\\Forms\\Block\\IO\\Converter\\AbstractConverter' => $baseDir . '/sources/Forms/Block/IO/Converter/AbstractConverter.php',

View File

@@ -875,6 +875,7 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f
'Combodo\\iTop\\Forms\\Block\\FormType\\ChoiceFormType' => __DIR__ . '/../..' . '/sources/Forms/Block/FormType/ChoiceFormType.php',
'Combodo\\iTop\\Forms\\Block\\FormType\\CollectionFormType' => __DIR__ . '/../..' . '/sources/Forms/Block/FormType/CollectionFormType.php',
'Combodo\\iTop\\Forms\\Block\\FormType\\FormType' => __DIR__ . '/../..' . '/sources/Forms/Block/FormType/FormType.php',
'Combodo\\iTop\\Forms\\Block\\FormType\\FormTypeHelper' => __DIR__ . '/../..' . '/sources/Forms/Block/FormType/FormTypeHelper.php',
'Combodo\\iTop\\Forms\\Block\\FormType\\OqlFormType' => __DIR__ . '/../..' . '/sources/Forms/Block/FormType/OqlFormType.php',
'Combodo\\iTop\\Forms\\Block\\IO\\AbstractFormIO' => __DIR__ . '/../..' . '/sources/Forms/Block/IO/AbstractFormIO.php',
'Combodo\\iTop\\Forms\\Block\\IO\\Converter\\AbstractConverter' => __DIR__ . '/../..' . '/sources/Forms/Block/IO/Converter/AbstractConverter.php',

View File

@@ -26,18 +26,17 @@ class FormType extends AbstractType
foreach($oBlock->GetChildren() as $oChild) {
if($oChild->IsAdded()){
$oFormChild = $form->get($oChild->GetName());
$aData[] = [
'name' => $oChild->GetName(),
'added' => $oChild->IsAdded(),
'id' => $oChild->GetIdentifier(),
'id' => FormTypeHelper::buildFormTypeFullPath($form) . '_' . $oChild->GetName()
];
}
else{
$aData[] = [
'name' => $oChild->GetName(),
'added' => $oChild->IsAdded(),
'id' => $oChild->GetIdentifier(),
'id' => FormTypeHelper::buildFormTypeFullPath($form) . '_' . $oChild->GetName()
];
}

View File

@@ -0,0 +1,19 @@
<?php
namespace Combodo\iTop\Forms\Block\FormType;
use Symfony\Component\Form\FormInterface;
class FormTypeHelper
{
public static function buildFormTypeFullPath(FormInterface $form): string
{
$names = [];
$current = $form;
while ($current !== null) {
$names[] = $current->getName();
$current = $current->getParent();
}
return implode('_', array_reverse($names));
}
}