|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu | Vrste prikaza |
24.3.2013, 0:53 | #1 |
Veteran
|
Generisanje menija(nested menus) i komentara?
Posto sistem koji koristim sad postaje jako neefikasan, zbog toga sto na svakom page load-u imam oko ~150 query-a samo za meni, sto je neprihvatljivo. Pa sam mislio da napravim nesto kao: samo jedna tabela, gde ce da se nalaze kategorije; svaka kategorija moze da bude top_level i svako osim te moze da ima parent-a(njegov id).
Sve je to ok u mojoj glavi ali problem je u realizaciji tog koda. Uopste nemam ideju kako bih to "nacrtao" na stranicu. Ista prica i za komentare ali ako resim menije i ovo je reseno. Pa da li neko ima ideju ili neki example kako da to uradim? |
24.3.2013, 2:14 | #2 |
V.I.P. Programiranje
Član od: 9.1.2009.
Lokacija: Beograd, Banovo Brdo
Poruke: 1.157
Zahvalnice: 83
Zahvaljeno 448 puta na 303 poruka
|
Re: Generisanje menija(nested menus) i komentara?
Nisi naveo koji jezik i koje alate koristis, ali generalna je ideja da ces koristiti node tree sistem.
imaces "cvorove" (postove/komentare) koji imaju svoju "decu" svaki cvor ima listu cvorova koji njemu pripadaju. sto se tice snimanja i ucitavanja, kada ucitas svaki cvor pojedinacno, preko parent_id-a ces ga dodavati u listu svog "roditelja" funkcija za crtanje ce crtati jedan po jedan i biti rekurzivna. Struktura podataka ti izgleda ovako nekako: Kod:
Cvor1 ------Cvor1a ------Cvor1b -------------Cvor1ba ------Cvor1c Cvor2 ------Cvor2a Kod:
Function NacrtajCvor(Node nd) { nd.kreirajHTML(); foreach (Node childNode in nd.childnodes) { NacrtajCvor(childNode); } } ona ce nacrtati taj jedan, i u petlji proci kroz svu njegovu "decu", i nad svakom od dece pozvati opet tu istu funkciju (koja ce dalje pozivati nad tom decom, itd dokle god ide duboko) nadam se da me razumes, ako ne, kazi pa da se bacimo na crtanje |
Sledeći korisnik se zahvaljuje korisniku irreal na korisnoj poruci: | ||
Ivan-94 (24.3.2013) |
24.3.2013, 4:15 | #3 |
Veteran
|
Re: Generisanje menija(nested menus) i komentara?
Hvala puno, evo koda:
Kod:
public static function menu($node) { if($node->top_level) { echo "<li class=\"dropdown\">"; echo "<a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">$node->name<b class=\"caret\"></b></a>"; echo "<ul class=\"dropdown-menu\">"; echo "<li class=\"nav-header\">Categories</li>"; } else { echo "<li>"; echo "<a href=\"#\" >$node->name</a>"; } foreach ($node->childrens() as $cat) { Str::menu($cat); } if($node->top_level) { echo "</ul>"; echo "</li>"; } } |
Bookmarks sajtovi |
Alatke vezane za temu | |
Vrste prikaza | |
|
|