formfactorykits
2 sites
No security coverage
Make custom Drupal forms... faster.
This module provides a service capable of creating FormFactoryKit objects.
Each kit is able to generate an array compatible with Drupal's Render API.
When appended to a FormFactory instance (provided by formfactory module), the kit is used to help create a complete form.
The kits provided by this module are merely covering Form API basics. Collections of Kit objects can be provided by any module.
Example
public function buildFormObject(FormFactoryInterface $form_factory, FormFactoryKitsInterface $kits): void
{
// Optional: the Form State object can be accessed via the Form Factory.
$form_state = $form_factory->getFormState();
// Create VerticalTabsKit & add it to the FormFactory instance.
$tabs = $kits->verticalTabs();
$form_factory->append($tabs);
// Create a "dogs" TabKit & add it to the VerticalTabsKit instance.
$dogsTab = $tabs->createTab('dogs')
->setTitle($this->t('Dogs'));
$dogsTab->append(
$kits->image('dogs_image')
->setTitle($this->t('Image'))
);
$dogsTab->append(
$kits->textarea('dogs_description')
->setTitle($this->t('Description'))
);
$dogsTab->append(
$kits->checkboxes('dogs_attributes')
->setTitle($this->t('Attributes'))
->appendOption(['a' => $this->t('A')])
->appendOption(['b' => $this->t('B')])
->appendOption(['c' => $this->t('C')])
->setDefaultValue(['b'])
);
// Create a "cats" TabKit & add it to the VerticalTabsKit instance.
$tabs->createTab('cats')
->setTitle($this->t('Cats'))
->append($kits->image('cats_image')->setTitle($this->t('Image')))
->append($kits->textarea('cats_description')->setTitle($this->t('Description')));
// Create a SubmitKit & add it to the FormFactory instance.
$form_factory->append($kits->submit());
}