K čemu se vlastně hodí makro plink?

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

Ahoj,

tak nějak si říkám, k čemu je vlastně plink dobrý? Můžete mi někdo napsat nějaké praktické využití? Vím, že plink se hodí akorát v šablonách u komponenty, ale komponenta by asi s presenterem neměla moc pracovat nebo ano? Taková otázka k zamyšlení.

Díky za odpovědi :-)

22
Člen | 1478
+
0
-

snad ti to z tohoto článku bude jasné

Editoval 22 (27. 8. 2011 20:03)

Mikulas Dite
Člen | 756
+
0
-

tl;dr v presenteru je to fuk, v komponentě chceš pro odkazování na jiné presentery použít plink.

Nox
Člen | 378
+
0
-

Komponenta myslím není tak daleko/rozdílná od presenteru – však taky jsou oboje v namespace „UI“

Navíc odkaz není nijak velká spolupráce

Pokud budu mít komponentu co vypisuje produkty, bylo by hezké mít třeba klikatelné kategorie → kliknutím by se přešlo na příslušnou stránku … ale ona sama řešit kategorie nemá, plink je správná cesta (imho)

Puristický přístup by v případě téhle potřeby komunikace s presenterem mohl být vynucení interface implementované presenterem, tak by vlastně bylo zaručeno že presenter bude rozumět tomu co by po něm komponenta chtěla

joe
Člen | 313
+
0
-

Vím k čemu je plink, jen nechápu praktické využití.

Nox – pokud bych nějakou takovou komponentu měl, pak bych asi produkty do ní přidával až v presenteru a tam přímo i generoval odkaz, tzn. zase bych použil $this->link (v presenteru) :)

srigi
Nette Blogger | 558
+
0
-

@joe, mas komponentu na navigaciu (menu). Ako by si inak odkazoval na jednotlive sekcie webu (co sekcia to iny Presenter – Galeria/Kosik/Archiv clankov)?

joe
Člen | 313
+
0
-

@srigi – právě bych tu komponentu plnil daty až v nějakym presenteru, takže by to mohlo vypadat nějak podobně

$items = $this->model->menu->findAll();
$navigation = new Navigation();
foreach($items as $item) {
		  // add($title, $url)
	$navigation->add($item->title, $this->link($item->destination));
}

V šabloně bych to pak už jen vypsal, ty data by se do takové komponenty stejně musely nějak vložit, ne?

Ani
Člen | 226
+
0
-

Komponenta si ty data muze nacist sama treba rovnou z modelu.