Více stejných snippetů na webu
- Desttro
- Člen | 126
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
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:245Je to nějak možno zařídít?
Děkuji za radu.
Udělej z toho komponentu
- Šaman
- Člen | 2666
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
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
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.