Contributte/forms-bootstrap – jak přidat vlastní metody

H0w4rd
Člen | 94
+
+1
-

Testujeme contributte/forms-bootstrap pro snazší generování Bootstrap 5 friendly formulářů. Umožňuje to i přidat row a cell, takže si mnohem častěji vystačíme s {control form} a nemusíme se dělat s {form form}…{/form}

$row = $form->addRow();
$cell = $row->addCell(6);
$cell->addText('firstname', 'First name');

Metoda addCell vrací Contributte\FormsBootstrap\Grid\BootstrapCell.
Ta sice má metody podobné jako \Nette\Application\UI\Form – ty jsou v traitě BootstrapContainerTrait, jenže já tam potřebuju dostat další metody, protože jsme si udělali spoustu formulářových prvků. Potřebuju dělat:

$cell->addPhone(...)
$cell->addBankAccount(...)
$cell->addDateRangePicker(...)
$cell->addState(...)

Dokážu to tam nějak dostat?
Chci se vyhnout nutnosti používání například

$phone = new Phone(...);
$cell->addComponent($phone, ...);
Pepino
Člen | 249
+
0
-

Řekl bych že ne. Sám to používám a byl to problém. Do formuláře BootstrapForm se dají dostat ještě klasicky pomocí extensionMethod ale do cell to je jiné. Nakonec jsem to řešil vlastním forkem a doplněním o věci co používám.

H0w4rd
Člen | 94
+
0
-

No na ten fork jsem právě už koukal :)

Ale nepochopil jsem, jak tam docpat $cell->addPhone(…)

Pepino
Člen | 249
+
0
-

Tak jak to je udělané, tak jediná možnost je přidat to do traity. Jinak by se to muselo předělat.