Kod
<!--BEGIN kategoria-->
<b>{kategoria}</b><br>
<!--BEGIN linki-->
<a href="{url}">{link}</a><br>
<!--END linki -->
<br><br>
<!--END 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 -->
<!---- 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 -->
<!---- 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 -->
<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
