Nette 2.1 – ako pridat class pre checkbox a jeho label v makre

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
mbohovic
Člen | 13
+
+1
-

Caute,

doteraz som pouzival verziu 2.1 dev, kde som vyuzival nasledovny postup:

{label $input class=>"checkbox" }
	{input $input class=>"input-class"} {$input->label}
{/label}

Teraz vo verzii 2.1 mi nezobrazuje v HTML kode class pre label ani pre input typ checkbox. Viete mi poradit ako to riesti?

Dakujem

mbohovic
Člen | 13
+
0
-

Zdravím,

chcel by som len vedieť či je to nejako možné v latte urobiť. Dlhšie sa nik neozval a vrátil som sa k tomuto problému.

Ďakujem

Mesiah
Člen | 240
+
0
-

Šlo by to takhle?

<form n:name=signInForm class=form>
    <p><label n:name=user>Username: <input n:name=user size=20></label>
    <p><label n:name=password>Password: <input n:name=password></label>
    <p><input n:name=send class="btn btn-default">
</form>
mbohovic
Člen | 13
+
0
-

Mesiah napsal(a):

Šlo by to takhle?

<form n:name=signInForm class=form>
    <p><label n:name=user>Username: <input n:name=user size=20></label>
    <p><label n:name=password>Password: <input n:name=password></label>
    <p><input n:name=send class="btn btn-default">
</form>

Ahoj,

ďakujem za reakciu. Upravil som kód v latte na tvar

<label class="checkbox">
	{input $input class=>"input-class"}
</label>

Takto to síce zobrazuje správne, ale samotný kód nie je správny. Toto riešenie nie je dobré.

Editoval mbohovic (3. 2. 2014 13:06)

Mesiah
Člen | 240
+
0
-

Můžu se zeptat, proč tohle není dobré řešení?

Editoval Mesiah (5. 2. 2014 9:21)

David Grudl
Nette Core | 8228
+
+1
-

Dej za $input dvojtečku $input: nebo použij zápis s n:name a verzi Nette 2.1.1

duskohu
Člen | 778
+
0
-

@David Grudl ako si to s tou dvojbotkou myslel? Mna by tiez zaujimalo ako v sablone ked generujem formular pridam labelu pre chceckbox classu? Dajme priklad:

{form}
<div n:foreach="$form->controls as $input">

	{if $input->controlPrototype->type == checkbox}
		{label $input} // tomuto labelu chcem dat class "checkbox"
			{input $input}
		{/label}
	{/if}

</div>
{/form}

A vo vustupe chcem mat format checkboxu, pricom chcem, aby label mal classu „checkbox“ ktoru som mu pridal pri generovani

<label class="checkbox">
	<input type="checkbox" name="XXX" > Text checkboxu
</label>

Editoval duskohu (9. 2. 2014 18:31)

David Grudl
Nette Core | 8228
+
0
-
{label $input:}
          {input $input:}
{/label}
mbohovic
Člen | 13
+
0
-

@David Grudl to co si napisal mi ale nezobrazuje samotny text za checkboxom. Vystup je napr. takyto:

<label class="checkbox" for="frm-signInForm-remember">
<input id="frm-signInForm-remember" type="checkbox" name="remember">
</label>

malo by to byt takto:

<label class="checkbox" for="frm-signInForm-remember">
<input id="frm-signInForm-remember" type="checkbox" name="remember"> Text za checkboxom
</label>
nanuqcz
Člen | 822
+
+1
-

mbohovic: V tom případě zkus tohle:

{label $input:}
          {input $input:} {!$input->labelPrototype->getText()}
{/label}

Možná, že existuje i nějaké hezčí řešení (doufám, že existuje), ale bohužel znám jen toto.

mbohovic
Člen | 13
+
0
-

nanuqcz napsal(a):

mbohovic: V tom případě zkus tohle:

{label $input:}
          {input $input:} {!$input->labelPrototype->getText()}
{/label}

Možná, že existuje i nějaké hezčí řešení (doufám, že existuje), ale bohužel znám jen toto.

Zial nepomohlo, stale sa text labelu nezobrazuje.

nanuqcz
Člen | 822
+
0
-

Tak to se omlouvám, vím že v Nette 2.0 to fungovalo.

Ještě jsem se díval, jak to mám v jednom projektu na Nette 2.1:

{label $input:}
          {input $input:} {$input->caption}
{/label}
duskohu
Člen | 778
+
0
-

@nanuqcz stale nerozumiem co akoze maju spachat tie dvojbodky, aky to ma ucel?

mbohovic
Člen | 13
+
+1
-

nanuqcz napsal(a):

Tak to se omlouvám, vím že v Nette 2.0 to fungovalo.

Ještě jsem se díval, jak to mám v jednom projektu na Nette 2.1:

{label $input:}
          {input $input:} {$input->caption}
{/label}

Toto je spravne, funguje to. Dakujem.

P.S. pripajam sa k otaze od @duskohu, aky maju tie dvojbodky vyznam?

Editoval mbohovic (10. 2. 2014 9:00)

nanuqcz
Člen | 822
+
0
-

Dvojtečky přepínají nový způsob vykreslování:

{label $field} -> <label><input> text</label>
{input $field} -> <label><input> text</label>

na starý:

{label $field:} -> <label>text</label>
{input $field:} -> <input>

Což je sice praktické pro Bootstrap, ale moc logické mi to nepřijde.


Já bych se ale přidal s otázkou na zkušenější, proč nefunguje tohle?

{label $input:}
          {input $input:} {$input->labelPrototype->getText()}
{/label}