PDA

Pogčedajte punu verziju : Order articles


Ivan
05. 06. 2007., 00:02
Imam jedan news engine, u delu u kome se pregledaju textovi postoji lista textova sa raznim detaljima (autor, timestamp, naslov, bla bla). Ova lista ima navigator za stranice (npr: na svakoj stranici po 10 textova) i pored svake stavke u listi imam strelicu (button/link/svejedno) sa kojom menjam redosled zapisa/textova. Logika radi tako sto za svaki text vezujem jedno polje koje odredjuje mesto (order) tog texta, i klikacenjem na button, zapis menja to order polje sa onim iznad njega.

Ovo sve super radi ali problem je kada imam ogroman broj textova i kada hocu npr onaj na mestu 1000 da stavim na 353. Klikanje na button u tom slucaju moze mnogo da smori.

Jedno od resenja je da napravim "prevlacenje" (drag-n-drop) ali mi se cini malo komplikovano jer imam situaciju kada hocu sa npr da prebacim sa 3 na 5 stranicu. Onda bi morao da pravim i handler za prebacivanje stranica.
Ili drugo resenje koje mi je palo na pamet je da otvorim neki pop-up ili nesto slicno u kome ce se upisivati id-evi zapisa koji treba da se promene pa da posle to sve odjednom upucam u bazu.

Ah da ostaje i problem kada zelim da ubacim neki text izmedju dva zapisa a ne da samo zamenim mesta ... ovo nije problem sa trenutnom logikom jer se ide redom (ono smor klik klik) ali kada zelim da preskocim redosled onda dolazi do problema jer treba zameniti previse order vrednosti.

Nadam se da ste razumeli moj problem ? Kako resiti ovaj problem ? Koji su vasi pristupi ?

Hvala,
Ivan

ivanhoe
05. 06. 2007., 07:41
ja bih napravio javascript prompt koji te pita na koju poziciju da stavi taj clanak.

losa strana ovog pristupa je da korisnik mora prvo da pogleda koja je to pozicija gde zeli da stavi vest(da nadje redni broj, sto nije bas user-friendly).

eventualno resenje za to bi bilo da ponudis listbox svih naslova, i da onda korisnik ima opciju: stavi umesto izabranog naslova, ali to opet nije bas pregledno za mnogo vesti

Ivan
20. 06. 2007., 23:29
Reseno na sledeci nacin:

Pored svakog zapisa jos uvek postoji dugme koje sluzi za "guranje na gore" ali sam dodao jos jedno polje u kome pise trenutna order vrednost. Klikom na tu vrednost otvara se input box na istom mestu u kome je moguce upisati novu vrednost i to kao real vrednost. Real sam stavio da ne bi morali da dodjemo u situaciju kada treba zameniti mesta nekom paru zapisa vec sada mozemo staviti npr 34.1 i sl.

Sve se to pamti u js array i na kraju se klikne link/dugme koje poziva php i vrsi sve izmene.

Ostaje pitanje, da li da radim realtime menjanje vrednosti (morao bih da koristim ajax sto dovodi u pitanje portabilnost) ili da radim kao sada (klik na link po zavrsetku izmena) ?

I da, imam proveru u slucaju kada je upisan isti order, onda samo ispisem gresku i idem dalje, razmiljam da stavim da se taj zapis upise kao npr 34,2 znaci da inkrementiram za 0,1 ali onda opet moze doci do podudaranja pa moram i to da proveravam ... ne znam da li je i to potrebno ...

Uglavnom, malo sam razmsljao naglas, mozda nekome pomogne, mozda neko ima nesto pametno da doda ...

BrainDamage
20. 06. 2007., 23:54
I da, imam proveru u slucaju kada je upisan isti order, onda samo ispisem gresku i idem dalje, razmiljam da stavim da se taj zapis upise kao npr 34,2 znaci da inkrementiram za 0,1 ali onda opet moze doci do podudaranja pa moram i to da proveravam ... ne znam da li je i to potrebno ...

Ne znamo ni mi da li ti je potrebno :) Ko ce koristiti taj news engine? Ako ces ga koristiti ti, nema potrebe jer ces valjda da pazis kad menjas redosled :) Ako je nesto sto ces da napravis, naplatis i "zaboravis", onda svakako da je bolje da pokrijes sve varijante koje mogu dovesti do nekog problema i panike, jer ko zna ko ce to odrzavati. Bolje sad odradi sve kako treba nego da te kasnije cimaju i histerisu kako "nesto ne valja", jer nece biti feature request koji bi mogao naplatiti nego bug fix :)