![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 3.04.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Chce stworzyc sredniozaawansowany system typu CMS oparty na bazach mysql i wykorzystujacy szablony. Do tej pory nie robilem stron opartych o szablony i pojawil sie problem. Mianowicie chce miec po lewej stronie zrobione menu podzielone na kategorie, mniej-wiecej tak jak index fora phpbb podzielony jest na kategorie i fora. Zeby uproscic sprawe chodzi o taki uklad:
Kod <!--BEGIN kategoria-->
<b>{kategoria}</b><br> <!--BEGIN linki--> <a href="{url}">{link}</a><br> <!--END linki --> <br><br> <!--END kategoria--> W php przy uzyciu standardowej funkcji echo wyglada to tak: [php:1:4d86280fe0] <?php $query = mysql_query("SELECT * FROM category"); while ($row = mysql_fetch_array($query)) { $links_query = mysql_query("SELECT * FROM links WHERE category = $row[name]"); while ($links_row = mysql_fetch_array($links_query)) { // ... } } ?> [/php:1:4d86280fe0] Problem polega na tym, ze przy zastosowaniu klasy szablow FastTemplate linki nie chca trzymac sie swoich kategorii tzn. kiedy mam 2 kategorie i w kazdej po jednym linku, w 1 kategorii prawidlowo pojawia sie 1 link, ale w kategorii 2 pojawiaja sie oba linki z obu kategorii. Mam to rozwiazane w taki sposob: left.php [php:1:4d86280fe0] <?php $tpl->define( array( left => "left.tpl", category => "category.tpl", menulink => "menulink.tpl" )); // IDZIEMY PO KATEGORIE... $query = mysql_query("SELECT * FROM kategorie WHERE strona = 'lewa' ORDER BY pozycja ASC"); while ($sql = mysql_fetch_array($query)) { // I LINKI $query2 = mysql_query("SELECT * FROM menu WHERE kategoria = '$sql[nazwa]' ORDER BY pozycja ASC"); $n =mysql_num_rows($query2); if ($n > 0) { while ($sql2 = mysql_fetch_array($query2)) { $tpl->assign( array( URL => $sql2[url], NAZWA => $sql2[nazwa] )); $tpl->parse(MENULINK,".menulink"); } } // SCHOWAJ SZABLON JEŻELI NIE MA LINKÓW... else { $tpl->assign(MENULINK,''); } $tpl->assign(TITLE,$sql[nazwa]); $tpl->parse(CATEGORY, ".category"); } $tpl->parse(LEFT,"left"); $tpl->FastPrint(); ?> [/php:1:4d86280fe0] I pliki szablonow: left.tpl Kod <!-- NAME: left.tpl -->
<!---- LEWE MENU ----> <TD vAlign=top width=243> {CATEGORY} </TD> <!---- KONIEC LEWE MENU ----> <!-- END: left.tpl --> category.tpl Kod <!-- NAME: category.tpl -->
<!---- LEWA KATEGORIA ----> <TABLE cellSpacing=0 cellPadding=0 width=243 border=0> <tr> <TD class=subjectcell width=243 background=template_img/IB-II/tlo1.gif height=48> <br><p align="center" style="text-indent: 0; line-height: 100%; word-spacing: 0; margin: 0"> </center> <p align="center" style="text-indent: 0; line-height: 100%; word-spacing: 0; margin: 0"><strong>{TITLE}</strong></TD> </tr> <CENTER> <tr> <TD class=newscell background=template_img/IB-II/menutlo.gif> <p align="center"> {MENULINK} </TD> </tr> <tr> <TD background=template_img/IB-II/dol.gif height=22></TD> </tr> </TABLE> <!---- KONIEC LEWA KATEGORIA ----> <!-- END: category.tpl --> menulink.tpl Kod <!-- NAME: menulink.tpl -->
<a href="{URL}" {NEWWINDOW}><font color="#808080">{NAZWA}</font></a><br> <!-- END: menulink.tpl --> Co jest najciekawsze, chowanie szablonu jezeli w kategorii nie ma linkow dziala zupelnie dobrze. Problemy pojawiaja sie dopiero, kiedy wyswietlane sa juz wlasciwe linki. Nie mam pojecia czemu tak sie dzieje, moze ktos tutaj bedzie mogl mi pomoc ![]() ![]() EDYCJA: Poradzilem sobie juz, zamiast FastTemplatow uzylem klasy template z phplib ![]() -------------------- Są 3 typy ludzi: ci, którzy potrafią liczyć i ci, którzy nie potrafią.
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 215 Pomógł: 0 Dołączył: 18.01.2003 Ostrzeżenie: (0%) ![]() ![]() |
zrob to lepiej na plikach ... latwiej sie takie rzeczy edytuje ... mnie by trafialo bym musial edytowac wyswietlanie strony przez edytor a nie przez sciagniecie sobie pliku odpowiedniego i otwarcie w edytorze lub edytowanie go po stronie serwera.
przerabialem z reszta kiedys ten temat ... na poczatku jaralem sie tym tak jak jest to w forum openBB gdzie szablony sa na bazie. z czasem zaczelo mnie to w.... juz nie mowiac, ze wyswietlanie szablonow z plikow jest troszke szybsze (zalezne oczywiscie takze od ilosci otwieranych plikow) -------------------- Działam w OpenSolution.org, autor Quick.Cms i Quick.Cart już od ponad 10 lat
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 09:24 |