Snippety a načítání ajaxového obsahu

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

Lámu si hlavou jak správně navrhnout snippety a jak je správně invalidovat a zatím se mi nepodařilo najít vhodné řešení.

Aktuálně mě to funguje tak že hlavní obsahovou částu web mam obalený do snippetu „contentArea“ a tento snippet refreshuju když klikám na jednotlivé položky menu. Abych pro každou položku nemusel dělat vlastní action, tak ten snippet invaliduju až „beforeRender“
Pokud pracuju s položkami menu je to ok, obsah se vyměnuje jak potřebuji. Ale problém nastane když sem na nějaké stránce kde jsou v contentArea další snippetové bloky a při akcich chci měnit jen je, ale při ajaxovém requestu se mě invaliduje a pošle i ten snippet „contentArea“

Má někdo nějaký tip jak bych to měl poupravit? Nebo se nevyhnu těm vlastním actions pro jednotlivé položky menu?

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Pokud chceš invalidovat menší bloky jen při zpracování signálů (což bych tipoval), tak můžeš v beforeRender invalidovat pouze pokud žádný signál nebyl odeslán.

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

And the trick is… :)

protected function beforeRender()
{
	parent::beforeRender();
	if ($this->getSignal() === NULL) {
		$this->invalidateControl('contentArea');
	}
}
akadlec
Člen | 1326
+
0
-

@vojtech.dobes: nice trick, díky za nakopnutí ;)