Více stejných snippetů na webu

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

Zdravím,
chtěl jsem se zpetat, zda je možno v Nette použít na webu více snippetů, které jsou naprosto stejné. Mám na hlavní stránce dynamický selectbox z databáze přes ajax.
Potřeboval bych, když návštěvník půjde na nějakou podstránku, nebo jiný odkazm než je Homepage:default, tak ať se na postraním panelu ukáže znovu tohle vyhledávání.
Zkoušel jsem to natvrdo zkopírovat, ale Nette mě nepustilo: Cannot redeclare static snippet ‚_secondSnippet‘ in …/templates/@layout.latte:245

Je to nějak možno zařídít?

Děkuji za radu.

Pavel Macháň
Člen | 282
+
+1
-

Desttro napsal(a):

Zdravím,
chtěl jsem se zpetat, zda je možno v Nette použít na webu více snippetů, které jsou naprosto stejné. Mám na hlavní stránce dynamický selectbox z databáze přes ajax.
Potřeboval bych, když návštěvník půjde na nějakou podstránku, nebo jiný odkazm než je Homepage:default, tak ať se na postraním panelu ukáže znovu tohle vyhledávání.
Zkoušel jsem to natvrdo zkopírovat, ale Nette mě nepustilo: Cannot redeclare static snippet ‚_secondSnippet‘ in …/templates/@layout.latte:245

Je to nějak možno zařídít?

Děkuji za radu.

Udělej z toho komponentu

Šaman
Člen | 2666
+
0
-

Na jedné stránce být více stejných snippetů nemůže. Pokud chceš docílit toho, tak si nastuduj dynamické snippety
Podle tvého popisu se mi ale zdá, že se snažíš o neco jiného. Jestli chceš mít na stránce dvakrát stejný vyhledávač, tak použij komponenty. Komponenty jsou taky popsané v uvedeném odkazu. V tvém případě to bude dvakrát vykreslená jediná instance komponenty, jak je tomu běžné třeba u paginátoru (stránkovači) nad i pod nějakou tabulkou.
Kdybys chtěl dva různé vyhledávače (třeba každý by byl napojený na jiný zdroj dat), tak bys potřeboval dvě továrničky a používat dvě instance stejné třídy komponenty. //edit: A kdybys chtěl vyhledávač pod každým článkem, pokaždé napojený jen na ten článek, tak bys použil Multiplicator, jako v tom odkazu.

Edit: Teď jsem si dočetl ten odkazovaný článek a u tebe to bude jednodušší. Nebudeš potřebovat žádný Multiplicator, jen si tu komponentu dvakrát vykreslíš pomocí, např. {control search}.

Editoval Šaman (7. 6. 2014 16:10)

Desttro
Člen | 126
+
0
-

Děkuji za odpověďi. Zapoměl jsem to lépe vysvětlit. Nepotřebuju na stránce dvakrát stejý vyhledávač – potřebuju to mít definované jenom v @layout.latte. Mám to vymyšlené tak, (přes ifCurrent) – že když je návštěvník na homepage, tak se mu ukáže uprostřed v contentu, pokud je na nějaké jiné stránce, než je index, tak v postranním panelu. Jenže mě nette nepustí mít tento samý snippet se sejným formulářem dvakrát v @layout.latte.
Tak to zkusím nějak přes ty komponenty

Šaman
Člen | 2666
+
0
-

Nemůžeš mít dva stejné snippety, stejně jako bys neměl mít dvě steján id na stránce. Tak si pro tu homepage udělej speciální layout. Nebo je pojmenuj každý jinak a překresluj oba. Nebo to řeš v CSS, jestli je to jen záležitost designu. Snippet, i když je v nedosažitelné podmínce, je stále součástí stránky.