routování neexistujících stránek na nettephp
- ic
- Člen | 430
Pořád mi vrtá hlavou, jestli a jak by šlo naroutovat to co je zde na nette.org
tedy nějaký normální router co zobrazuje existující stránky
a pak něco co u neexistující stránky ( https://nette.org/cs/nic ) nabídne možnost jí vytvořit
je toto děláno přes chybu (errorPresenter) nebo není?
- kravčo
- Člen | 721
Vidím to tak, že ak stránka neexistuje, nie je to chyba, preto by túto
situáciu nemal spracovať ErrorPresenter
. Povedzme, že máme
prezenter Page
, akcie view
, edit
a
perzistentný parameter name
. Pri požiadavke na
Page:view?name=nieco
môžu nastať dve možnosti:
- stránka existuje a štandardne sa zobrazí (akcia
view
pohľadview
) - stránka neexistuje a zobrazí sa „formulár“ na vytvorenie (akcia
view
pohľadcreate
)
Viac na stránke Action vs. View.
- Blizzy
- Člen | 149
Podle mě je to nic
normální parametr předaný presenteru,
který spravuje stránky.
Jednoduše pokud dostane v parametru identifikátor existující stránky, zobrazí ji, pokud dostane neexistující, nabídne ji vytvořit.
EDIT: kravčo byl rychlejší a podrobnější :)
Editoval Blizzy (20. 8. 2009 16:33)
- grogy
- Člen | 147
Error presenter odesílá 404 ne?
A myslím, že i tak by to bylo tady v tomto případě správně – protože stránka neexistuje, ale další možností je ji teprve vytvořit. Proto mi příjde zcela v pořádku zpracovávat přes něj.
Pokud by se jednalo o určitou sekci webu example.com/neco/tady-se-teprve-vytvari tak udělat jinak ale ovšem pokud to jde v celém rosahu webu tak mi příjde lepší ErrorPres.
Edit:// Tu na nette.org se také odesílají 404 hlavičky se šablonou robots – noindex,nofollow
Editoval grogy (20. 8. 2009 17:36)
- David Grudl
- Nette Core | 8218
Jak tu zaznělo, neexistující stránka není (v případě Wiki obecně) chyba, ale stav, se kterým presenter počítá a reaguje na něj zobrazením jiné šablony. A taky vyhozením kódu 404, aby to Google neindexoval.
Hele, teď mě tak napadá – co kdyby chybový HTTP kód vyhazoval rovnou Application (když není definovaný $errorPresenter stejně to dělá), čímž by se zjednodušil běžný ErrorPresenter?
- Jan Jakeš
- Člen | 177
Narazil jsem na tohle téma a docela by mě zajímalo, jak je tu řešena hierarchie stránek. Pokud například vytvořím novou stránku ve tvaru:
example.com/neco/jeste-neco/nazev-stranky
Uloží se do databáze prostě string
neco/jeste-neco/nazev-stranky
nebo se to nějak rozseká na
kategorie? A co by se stalo, kdybych po vytvoření výše uvedené stránky
zavolal pouze example.com/neco/jeste-neco
?
A jak se řeší přejmenování stránky?