Ik heb het volgende probleem,
Ik heb een menu die haal ik uit de database en die parse ik via smarty.
In de database staan ook {value} waardes die smarty moet gaan vervangen.
Dit is omdat dat waardes zijn die het taal-bestand moet overschrijven, in de normale templates (de tpl-bestanden) heb ik er geen problemen mee maar als die een {waarde} uit de database heeft zet die, die ook zo neer en vervangt die het niet voor wat ik in het taalbestand heb en als assign door geef.
Hoe kan ik dit oplossen zodat die wel de waardes door geeft?
Hier onder wat code van hoe m'n menu in elkaar zit:
TPL bestand
<ul>
{foreach name=header item=header key=cur_header from=$menu}
<li class="header">{$cur_header}</li>
{foreach name=item item=link key=cur_item from=$header}
{if $cur_item neq '0'}
<li><a href="{$link}"><span>{$cur_item}</span></a></li>
{/if}
{/foreach}
{/foreach}
</ul>PHP Bestand
<?php
/* Hier boven wordt het een en ander geinclude*/
function drawMenu($parent=0,$indent=0) {
global $sql, $smarty;
$res = $sql->query("SELECT o.id, o.parent, o.link, o.titel, count(i.titel) children FROM menu o LEFT JOIN menu i ON o.id = i.parent WHERE o.parent=".$parent." GROUP BY o.titel ORDER BY o.volgnr");
$i = 0;
$array = array();
while ($row = $sql->fetch_array($res,MYSQL_ASSOC)) {
$array[$row['titel']] = '';
if ($row['children'] >0) {
$ress = $sql->query("SELECT o.id, o.parent, o.link, o.titel, count(i.titel) children FROM menu o LEFT JOIN menu i ON o.id = i.parent WHERE o.parent=".$row['id']." GROUP BY o.titel ORDER BY o.volgnr");
$id = $row['titel'];
while ($roww = $sql->fetch_array($ress,MYSQL_ASSOC)) {
$array[$id][$roww['titel']] = $roww['link'];
}
}
}
$smarty->assign('menu', $array);
}
$smarty->assign(array(
'INCL_TEMPLATE' => 'acp_main.tpl',
'PAGE' => 'Overzicht beheerderspaneel',
'LANG_CONFIRM_CODE' => $lang['CONFIRM_CODE'],
));
drawMenu(isset($_GET['tab']) ? $_GET['tab'] : 1);
/* Hier onder wordt het een en ander geinclude waaronder het output bestand waar $smarty->display() in staat*/
?>