Latte link (expand) a pole

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

Ahoj,
chtěl bych v latte šabloně použít něco takového:

<a n:href="(expand)$link">...

V $link mam

array('Presenter:action', 'parametr')

a potrebuju aby výsledek byl takový jako kdybych v šabloně napsal

<a n:href="Presenter:action parametr">...

Zápis <a n:href=„Presenter:action (expand)$link“>.. použít nemůžu protože dopředu nevím na jaký presenter/akci budu volat. Napadlo mě že by to šlo zápisem v php ale pokud to jde napsal bych to rači přímo v latte šabloně.

Filip Procházka
Moderator | 4668
+
0
-

Proč raději neudělat odkaz už v presenteru?

$this->template->link = $this->link('Presenter:action', $param);

nebo

$this->template->link = $this->lazyLink('Presenter:action', $param);
murdej
Člen | 26
+
0
-

Vyřešil jsem to takto:

<a href="<?= $presenter->link($link[0], array_slice($link, 1, count($link) - 1, true)) ?>">

Filip Procházka napsal(a):

Proč raději neudělat odkaz už v presenteru?

$this->template->link = $this->link('Presenter:action', $param);

nebo

$this->template->link = $this->lazyLink('Presenter:action', $param);

V presenteru mam neco toto:

	public function actionSearch($q) {
		$this->template->q = $q;
		$this->template->results = $this->context->articles->fulltext($q);
	}

takže bych to musel prochazet foreachem a pridavat property a nebo generovat link v tom objektu ale tam zase nemam dostupny presenter.

enumag
Člen | 2118
+
0
-

Ono by bylo lepší kdybys v tom results měl vždy zvlášť destination (modul:presenter:action) a zvlášť parametry. Pak bys mohl klidně použít (expand) a nemusel bys dělat kejkle s array_slice.

murdej
Člen | 26
+
0
-

enumag napsal(a):

Ono by bylo lepší kdybys v tom results měl vždy zvlášť destination (modul:presenter:action) a zvlášť parametry. Pak bys mohl klidně použít (expand) a nemusel bys dělat kejkle s array_slice.

Toto bude to co jsem hledal, diky za napad.