Pole proměnných v routě

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

Dovolte mi abych Vám nejdříve nastínil mojí myšlenku.
Třeba bude špatná, ale pro to právě forum je ne :), aby se ostatní vyvarovali chyb.

Představte si CMS, kde dopředu nevíte kolik má cesta levelů tzn. jak je hluboká (rekurze).
Jednotlivé stránky jsou čtené s DB či jiného úložiště.

př. url/o-fakulte/kalendar-akci/…

Tak mě napadlo, že by bylo z mnoha důvodů výhodné, mít cestu uloženou jako pole:

$path=array(
[0] =>'o-fakulte'
[1] =>'kalendar-akci'
);

Tohle řešení ovšem způsobí to, že v proměnné GET dostaneme něco takového:
url?[0]=o-fakulte&[1]=kalendar-akci

A tak se ptám jak udělat router aby pole $path proměnilo na takovouto krásnou url:
url/o-fakulte/kalendar-akci/

Jedno řešení mi poradil JOD. Dík ;)

Nejdříve převěst pole na sting : value/value/…
a poté zpět rozparsovat na pole.

Řešení funguje a zatím to taky tak mám, ale chtěl jsem se zeptat, jestli neexstuje elegantnější řešení.

Dík

Editoval krissott (17. 1. 2009 21:43)

vlki
Člen | 218
+
0
-

Myslím, že nejčistší řešení by bylo přepsat Route. V metodě constructUrl bys z pole vytvářel řetězec a v match obráceně.

romansklenar
Člen | 655
+
0
-

Ahoj, pokud myslíš víceúrovňové routy, zkus si nastudovat tohle vlákno, tam se to řešilo. Je to docela častý požadavek redakčních systémů mít URL v takových tvarech a bez napsání vlastní routy je to asi slepá cesta (teda jde to, ale je to prasácké no :)). Já se tady na tohle taky v nejbližší době chystám.

BTW: všimám jsi, že hodně lidí řeší podobné věci, často spojené s psaním nějakého vlastního CMS – možná by nebylo na škodu něco takového v Nette napsat, přece víc hlav ⇒ víc nápadů a širší okruh vývojářů ⇒ najde se víc chyb. Pokud by to někoho zaujalo, napište mi pls PM.

krissott
Člen | 48
+
0
-

Díky Romane. Toto vlákno jsem nenašel a omlouvám se, že jsem vytvořil další jému podobné.
Kouknul jsem se na to, zatím je to nad mé síly, ale ono se to poddá ;)

Jinak ja teď takové CMS už přichystávám. Mám to jako bakalářku.
Ale jelikož mi v pondělí začne zkouškové, tak se tomu začnu na 100% věnovat až v únoru.

Ale rád se s tebou dohodnu. Moje icq máš…

Tak zatím čest.

Jod
Člen | 701
+
0
-

Ja mám cms zatiaľ v polofunkčnej fázi, akurát skúšam modul stránok na internete, ale Roman má super nápad. Píšem PM :)

// ako kukám, žiadne pm tu niesu :D

Editoval Jod (18. 1. 2009 11:16)

Ondřej Brejla
Člen | 746
+
0
-

Moc dobrý nápad, rád se jakkoliv zapojím ;)

phx
Člen | 651
+
0
-

Jukni do prikladu fifteen. V komponente jsou pouzity metody loadState() a saveState(), coz by ti taky mohlo pomoci.

LM
Člen | 206
+
0
-

Není zbytečný to tak komplikovat? mít prostě jen v úložišti:

id titulek
o-fakulte/kalendar-akci Kalendář akcí

a parametru v routě povolit i znak /.

vlki
Člen | 218
+
0
-

V reseni uloziste s id vidim neintegritu v tech url. Protoze pokud existuje url o-fakulte/kalendar-akci, pak je predpoklad, ze bude existovat take stranka o-fakulte, at uz to ma byt napr. jen presmerovani na o-fakulte/kalendar-akci. Jednoduche uloziste by toto neresilo (pokud by nerozparsovavalo jednotlive url a ty fragmenty, pokud v ulozisti neexistuji, presmerovavalo na ten vychozi tvar).

Prepsani Route totiz dava i obrovskou volnost v tom smyslu, jak se bude aplikace chovat.

krissott
Člen | 48
+
0
-

Co se tyce toho CMS. Co takhle zvolit nejaky typ komunikace. Forum mi neprijde nejlepsi, kdyz s tim chceme trosku pohnout. Myslim, ze kdyz dame hlavy dohromady, tak by z nas mohl vypadnout brzo pekny vytvor.
Navic muzeme prodiskutovat nektere problemy, ktere nam litaji hlavou.

Co takhle udelat IRC kanal, nebo nekde nejakou mistnost, nebo neco podobneho co je trosku rychlejsi nez fora. Nebo dokonce nejaky groupware. Udelelat na nejake domene mistecko a pomalu to rozjizdet. CO na to rikate?

vlki
Člen | 218
+
0
-

Ted u me nastava takove dilema, zda odpovedet mailem nebo tu na forum:)

Souhlasim s krissottem. Jsem pro neco interaktivnejsiho. Ted po zkouskovem snad vsichni budou mit vice casu nez obvykle, ne? Jsem pro IRC + neco, kde se jiz domluvene a prodiskutovane bude nejak zapisovat.

krissott
Člen | 48
+
0
-

Ted jsem to chtel napsat vlki. Chtelo by to IRC kanal pro probrani aktualnich veci a problemu + nejake uloziste. Ted zalezi na tom, kde hotove veci sepisovat. Jestli nahodit nejaky groupware a nebo to jen hazet na nejaky web ci nette forum. To by musel ale dovolit David…

Takze Nette CMS tym:
Vlki
Roman
krissott
warden(asi)

jeste nekdo?

Nez neco zacnem, je treba urcite probrat par veci…
Muze to vypadat spontalne a narychlo, ale nejak se to rozhybat musi ne?
:)

Editoval krissott (18. 1. 2009 14:25)

Honza Marek
Člen | 1664
+
0
-

Já bych moh být expert na Texylu, pokud byste ji chtěli zakomponovat do CMS… S licencí si nemusíte lámat hlavu, protože ji chci beztak nějak zvolnit, aby se lidi nestyděli Texylu používat.

krissott
Člen | 48
+
0
-

Dalsi clen? Super

Tak ja bych se nejdrive dohodl na te komunikaci.

At nezatezujeme nette forum, tak udelam IRC kanal, kde to proberem.

Kouknete se zatim na tohle:http://www.linuxexpres.cz/…ebo-do-pekel

A za zminku sotji taky google groups:http://groups.google.cz/

Editoval krissott (18. 1. 2009 15:24)

ViliamKopecky
Nette hipster | 230
+
0
-

Rád se připojím (vám končí zkouškové, mě začíná předmaturitní…:)

Editoval enoice (18. 1. 2009 15:41)

romansklenar
Člen | 655
+
0
-

Enoice: ten BaseCamp nevypadá špatně, dokonce je tam i free verze.

cuga
Člen | 210
+
0
-

cauko,

taky se o vlastni cms pokousim a rad se pridam.

jak budu mit chvilku casu, tak si prostuduju poslane odkazy a pozadam o ty udaje.

phx
Člen | 651
+
0
-

Taky bych rad necim prispel, ale nevim jak to budu casove zvladat:)

veena
Člen | 98
+
0
-

Zkuste na project management http://www.assembla.com Je to zdarma, má to svnko a víc toolů pro vývojáře než basecamp.

simon
Člen | 98
+
0
-

jo ale ten prostor zadarmo je verejnej, takze kazdej (i konkurence) pak muze videt co mas ve zdrojaku

sairon
Člen | 32
+
0
-

A to se snad v případě tohodle projektu uvažuje o closed source? To je v tomhle případě trochu blbost ;)

simon
Člen | 98
+
0
-

sem to vytrhl z kontextu necetl jsem to nad tim prispevkem o assemble.