více stejných komponent s různými parametry na jedné stránce

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

Zdravím, mám jednoduchou testovací komponentu a potřeboval bych jí v šabloně vypsat vícekrát a pokaždé s jinými parametry.

Po dlouhém brouzdání jsem našel něco pomocí multiplieru
v presenteru:

<?php
	protected function createComponentTestComp() {

		$multiplier = new Nette\Application\UI\Multiplier(function ($arg) {
			$control = $this->testFactory->create($arg);
			return $control;
		});
		return $multiplier;

	}
?>

a v šabloně

<?php
{control testComp-$arg1}
blabla
{control testComp-$arg1}
?>

šlo by tohoto docílit nějak jinak bez multiplieru?
např. v šabloně něco na způsob:

<?php
{control testComp,arg = "argument"}
{control testComp,arg = "argument2"}
?>
enumag
Člen | 2118
+
0
-

Proč ti Multiplier nestačí?

yrow
Člen | 12
+
0
-

no stačí? jen jestli to jde udělat i jinak:) ale dík

nettolog
Člen | 68
+
0
-

Záleží na co to potřebuješ, jde to třeba takhle:

{control xycontrol $arg1, $arg2}

V továrničce pak jde obsah komponenty obalit stylem

{snippet xycontrol} {snippet xycontrol-$id}...{/snippet}{/snippet}

Omlouvám se za stručnost, píšu z mobilu, ale třeba ti to pomůže. Záleží na co přesně to potřebuješ.

Lukeluha
Člen | 130
+
0
-

Ale pozor, pokud použiješ variantu {control xyz $arg1}, tak se ty argumenty pošlou až do metody render v konkrétní komponentě.