juce sam prvi put uzeo da probam smarty i polako krenuo i kapiram da sam dobro skontao manje vise :-))
E sad, doso sam do sledeceg problema: prikaz menija. Naime, imam bazu podataka koja izgleda ovako:
ID------------VREDNOST-----------------PARENT
``````````````````````````````````````````
1-------------HOME---------------------NULL
2-------------O Nama-------------------NULL
3-------------Neko dugme---------------1
4-------------Opet neko dugme----------2
5-------------I tako dalje----------------1
E sad, problem mi je bio kako da ovakav meni(iscitan iz baze) prebacim u smarty, al da meni moze da ima Child-ove. Problem sam resio na sledeci nacin:
INDEX.php:
<?php
session_register();
// Ucitaj config file
include('config.php');
// Prvo se konektujemo na bazu
mysql_connect(DB_HOST, DB_USER, DB_PASS) or die(mysql_error());
// Izaberemo tabelu
mysql_select_db(DB_NAME) or die(mysql_error());
//Sada cemo da ucitamo dugmice iz menija :-))
$query = "SELECT * FROM meni ORDER BY `parent`";
$query = mysql_query($query) or die(mysql_error());
while($result = mysql_fetch_array($query, MYSQL_ASSOC)) {
if ($result['parent'] >= 1) {
$child[] = $result;
}
else {
$parent[] = $result;
}
}
$smarty->assign('parent', $niz);
$smarty->assign('child', $child);
$smarty->display('index.tpl');
?>
INDEX.tpl
<html>
<head>
<title>User Info</title>
</head>
<body>
{section name=parent loop=$parent}
{$parent[parent].ID}
{$parent[parent].parent}
{$parent[parent].vrednost}
{section name=child loop=$child}
{if $child[child].parent == $niz[parent].ID}
<br />
- {$child[child].vrednost}
{/if}
{/section}
<br />
{/section}
</body>
</html>
Znaci logika rada je sledeca: U index.php fajlu, prvo pokupim sve iz baze i Parent-e smestim u jedan niz, a Child-ove u drugi. Zatim te nizove prosledim u Smarty.
E sad, kao sto vidite, u smarty-ju pravim dve petlje, prva odstampa Parent, pa onda pokrece drugu petlju koja proverava da li taj parent ima child-ove (proveri ceo $child niz ) i ukoliko ih ima, normalno odstampa.
E to sve radi ok ( za sad :P ), al mene zanima dal postoji neki jednostavniji nacin da se ovo odradi ( da ne proveravam svaki put ceo $child niz ) ??
Hvala unapred :-)
Mihailo Joksimovic