mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-24 11:08:45 +02:00
N°8772 - Form compiler for classes
This commit is contained in:
@@ -7,13 +7,44 @@
|
||||
|
||||
namespace Combodo\iTop\PropertyTree\ValueType;
|
||||
|
||||
use Combodo\iTop\DesignElement;
|
||||
use Combodo\iTop\Forms\Block\Base\ChoiceFormBlock;
|
||||
use Combodo\iTop\Forms\Block\Base\TextFormBlock;
|
||||
use Combodo\iTop\PropertyTree\ValueType\AbstractValueType;
|
||||
use Combodo\iTop\Service\DependencyInjection\DIService;
|
||||
use utils;
|
||||
|
||||
class ValueTypeClass extends AbstractValueType
|
||||
{
|
||||
protected array $aCategories = [];
|
||||
|
||||
public function GetFormBlockClass(): string
|
||||
{
|
||||
return TextFormBlock::class;
|
||||
return ChoiceFormBlock::class;
|
||||
}
|
||||
|
||||
public function InitFromDomNode(DesignElement $oDomNode): void
|
||||
{
|
||||
parent::InitFromDomNode($oDomNode);
|
||||
|
||||
$sCategories = $oDomNode->GetChildText('categories-csv');
|
||||
/** @var \ModelReflection $oModelReflection */
|
||||
$oModelReflection = DIService::GetInstance()->GetService('ModelReflection');
|
||||
|
||||
$sChoices = "[\n";
|
||||
foreach ($oModelReflection->GetClasses($sCategories, true) as $sClass) {
|
||||
if ($oModelReflection->IsAbstract($sClass)) {
|
||||
continue;
|
||||
}
|
||||
$sValue = utils::QuoteForPHP($sClass);
|
||||
$sChoices .= <<<PHP
|
||||
\Dict::S('Class:$sClass') => $sValue,
|
||||
|
||||
PHP;
|
||||
}
|
||||
$sChoices .= "\t\t\t]";
|
||||
|
||||
$this->aFormBlockOptionsForPHP['choices'] = $sChoices;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user