oPrototypeBlock; } /** @inheritdoc */ protected function RegisterIO(IORegister $oIORegister): void { parent::RegisterIO($oIORegister); $oIORegister->AddInput(self::INPUT_CLASS_NAME, ClassIOFormat::class); } /** @inheritdoc */ protected function RegisterOptions(OptionsRegister $oOptionsRegister): void { parent::RegisterOptions($oOptionsRegister); $oOptionsRegister->SetOption('prototype', true); $oOptionsRegister->SetOption('allow_add', true); $oOptionsRegister->SetOption('prototype_options', [ 'label' => false ]); // not type options $oOptionsRegister->SetOption('block_entry_type', FormBlock::class, false); $oOptionsRegister->SetOption('block_entry_options', [], false); } /** @inheritdoc */ protected function AfterOptionsRegistered(OptionsRegister $oOptionsRegister): void { parent::AfterOptionsRegistered($oOptionsRegister); $sBlockEntryType = $this->GetOption('block_entry_type'); $sBlockEntryOptions = $this->GetOption('block_entry_options'); $this->oPrototypeBlock = new ($sBlockEntryType)('prototype', $sBlockEntryOptions); $oOptionsRegister->SetOption('entry_type', $this->oPrototypeBlock->GetFormType()); $oOptionsRegister->SetOption('entry_options', $this->oPrototypeBlock->GetOptions()); } }