Manuální výpis RadioListu (s formulářovými makry)

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Vojtěch Dobeš
Gold Partner | 1316
+
0
-

V záchvatu hraní si s Latte jsem si napsal pomocníka na manuální vykreslování RadioListu. Vnímám, že kodérovi (nebo obecně při kódování šablony) by mohlo pomoci, kdyby nebylo nutné používat konstrukci

{foreach $form['list']->items as $key => $label}

a následně {$form['list']->getControl($key)} – navíc bez možnosti vložit cokoliv mezi <input> a přidružený <label>. Mnou navrhované řešení zavádí nové makro {inputlist} a vypadalo by takto:

<table>
	{inputlist list}
		{if $iterator->isFirst(3)}
			<tr>
		{/if}
		<td>{input} {label /}</td>
		{if $iterator->isLast(3)}
			</tr>
		{/if}
	{/inputlist}
</table>

Případně v Latte to jde ještě hezčejc :) :

<table n:inner-inputlist="list">
	{first 3}<tr>{/first}
	<td>{input} {label /}</td>
	{last 3}</tr>{/last}
</table>

Mám už i implementaci, ale je fakt, že jsem možná trochu předběhnul, takže otázka zní, jestli vám to přijde jako smysluplné a Nette hodné řešení :)

Nehodil jsem to do doplňků, protože jsem nakonec raději upravil i kód RadioListu. V případě zájmu o tuto funkcionalitu je zde implementace i čistě skrze Latte, ale není moc ošetřená (při pohledu do kódu bude jasné): https://gist.github.com/1474583.

Filip Procházka
Moderator | 4668
+
0
-

Co se týče toho extension, mohlo by ti pomoct https://gist.github.com/1151346

Jinak nápad jako takový se mi moc líbí. Ale nevím jak je rozumné rozšiřovat současné formuláře, když David plánuje nové.

PS: Co takhle spíše {inputitems}?

Editoval HosipLan (2. 1. 2012 12:58)