HTML v labelu u radio buttonu
- Martin Mates
- Člen | 179
Zdravíčko. Chtěl bych udělat něco takovéhoto:
<?php
$lokalitaItems = array(
'Buddha Bar' => 'Buddha Bar <a href="http://www.buddha-bar-hotel.cz/">www.buddha-bar-hotel.cz</a>',
);
$form->addRadioList('lokalita', 'Lokalita (prosím vyberte jedno pole)', $lokalitaItems)
->addRule(Form::FILLED, 'Vyberte vámi preferovanou lokalitu')
->getControlPrototype()->tabindex('3');
?>
V šabloně pak: {$form['lokalita']->control}
vypíše label
s htmlspecialchars. Jak nejjednodušeji dosáhnu toho, aby byl v tom labelu
funkční odkaz. Resp, jak můžu přistoupit k labelu určitého
radiobuttonu. Díky!
Editoval Martin Mates (17. 2. 2010 21:36)
- Mikulas Dite
- Člen | 756
Mělo by fungovat použít v labelu
Html::el('a')->href($link)->setText('Popis');
, případně to
celé zabalit do nějakého
Html::el('span')->insert(0,$tenLink);
. viz API https://api.nette.org/…eb.Html.html
Editoval Mikulas Dite (17. 2. 2010 21:42)
- Martin Mates
- Člen | 179
Mikulas Dite napsal(a):
Mělo by fungovat použít v labelu
Html::el('a')->href($link)->setText('Popis');
, případně to celé zabalit do nějakéhoHtml::el('span')->insert(0,$tenLink);
. viz API https://api.nette.org/…eb.Html.html
Díky! Ten první způsob jsem zkoušel a to nefunguje. Ten druhý jsem neznal, zkusím. Zatím jsem to tam narval pomocí jQuery.
- Mikulas Dite
- Člen | 756
Já tím myslel prakticky to stejný, akorát že v ukázce si měl label
text *link*
, tak do toho spanu dát text a jako child node dát ten
link. Jestli ale Html v tomhle labelu nefunguje, budeš si muset napsat
vlastní renderer, nebo to spíš kreslit manuálně.
Editoval Mikulas Dite (17. 2. 2010 23:11)
- Ondřej Brejla
- Člen | 746
Nevím, nezkoušel jsem a nemám čas vyzkoušet…ale první, co mě
napadlo…{!$form['lokalita']->control}
- mkoubik
- Člen | 728
ATom napsal(a):
No, osobně bych považoval za nejlepší alespoň možnost escapování znaků v labelu vypnout. Nejsou to data od uživatele a velice často je potřeba tam dávat HTML, musí se tak dělat obezličky na to, co je normální. Typicky labely jako: Emistní limit CO<sub>2</sub>
To má souvislost s tím, že renderování formuláře by bylo lepší mít
ve view (v šabloně) – tam funguje {!$label}
bez escapování.
Něco k tomu je tady: https://forum.nette.org/…0-radku-kodu.
BTW: bude se to nějak řešit v 1.0?
- Martin Mates
- Člen | 179
Ondřej Brejla napsal(a):
Nevím, nezkoušel jsem a nemám čas vyzkoušet…ale první, co mě napadlo…
{!$form['lokalita']->control}
Tohle bylo také první, co jsem zkusil. To nejde. Nette hodí ještě jedno htmlspecialchars k labelu, který ten control automaticky vykreslí ke každému radio buttonu. K němu nevím, jak se dostat, abych tam propašoval ten vykřičník.