Obalení inputu ještě před vykreslením formuláře

Marek Znojil
Člen | 90
+
0
-

Ahoj,

je možné nějakým způsobem nadefinovat obalení inputu tagem ještě před vykreslením formuláře?

<input>

na

<span><input></span>

Díky.

M.

dakur
Člen | 493
+
0
-

@Polki Myslel jsi manuální rendering?

To určitě jde, ale možná je to pro toto overkill. @MarekZnojil Nešlo by to udělat přes $wrappers? Viz https://doc.nette.org/…ms/rendering#… a tam hledej wrappers. Konkrétně asi wrappers['control'].

Editoval dakur (10. 9. 2020 16:02)

Marek Znojil
Člen | 90
+
0
-

dakur napsal(a):

@Polki Myslel jsi manuální rendering?

To určitě jde, ale možná je to pro toto overkill. @MarekZnojil Nešlo by to udělat přes $wrappers? Viz https://doc.nette.org/…ms/rendering#… a tam hledej wrappers. Konkrétně asi wrappers['control'].

Ano, takto to není problém, ale je možné to provést na samotný input?

Třeba nějak takto?

$form = new Form;
$form->addText('name', 'Name')
  ->getControlPrototype()...  // Zde třeba nějakým způsobem nadefinovat 'rodiče' pro pole.
;

Z původního komentáře to nejspíše nevyznělo tak jednoznačně.

Marek Bartoš
Nette Blogger | 1274
+
+1
-

V čem je manuální render overkill? Nette nabízí makro formPrint na vyrenderování kódu formuláře. Pak už stačí prostý copy paste a upravit html element v šabloně, tak jak to s MVC architekturou má být.
Spíš je overkill se snažit vše řešit rendererem, než napsat jednoduchou šablonu.

Marek Znojil
Člen | 90
+
0
-

Mabar napsal(a):

V čem je manuální render overkill? Nette nabízí makro formPrint na vyrenderování kódu formuláře. Pak už stačí prostý copy paste a upravit html element v šabloně, tak jak to s MVC architekturou má být.
Spíš je overkill se snažit vše řešit rendererem, než napsat jednoduchou šablonu.

Souhlasím, makro formPrint je cool.

Jenom jsem narazil na nějakou problematiku a zajímalo mě, jestli by to nešlo vyřešit ještě v samotné definici.

Toto by byla spíže otázka nastavení rodiče, ale netuším zda v Nette\Utils\Html to nějak lze?

dakur
Člen | 493
+
0
-

@Mabar Já osobně používám pouze manual rendering, ale pokud už Nette nabízí užití wrappers, pak je manual rendering na obalení inputů podle mého názoru overkill i s {formPrint}, protože to znamená, že místo toho, aby ti default renderer usnadňoval jednoduché věci, tak si to stejně musíš napsat a udržovat sám, byť s pomocí copy&paste.

@MarekZnojil To už bohužel nevím, sám jsem s wrappers nikdy nepracoval a přiznám se, že renderování formů je pro mě pořád trochu magic.