Bonjour,
J'utilise smarty depuis peu et je suis confronté à un problème d'affichage de lien actif pour la page en cours.
Les pages sont générées depuis index.php et je teste la variable d'url pour voir si la valeur du champ renvoyé "title" par la base MySQL est la même et passer le "lien" en actif (plus de lien).
Les noms sont bien affichés et le menu est bien généré mais la condition ne fonctionne que pour le premier rechargement de index, si je clique à nouveau sur un lien ( le lien actif reste sur la page rechargée).
Voici le code sur index.php (sans les "require_once spécifiques") :
$smarty = new Smarty_content();
// $d3 est un objet servant à faire la requête
$smarty->assign('menu', $d3);
$smarty->display('global.tpl');
Voici le code pour le template "menu.tpl" imbriqué dans "global.tpl" :
<ul>
{foreach from=$menu->table key=rank item=value}
{if $smarty.get.rub != $value.title|replace:$menu->char_utf8:$menu->char_url}
<li><a href="index.php?rub={$value.title|replace:$menu->char_utf8:$menu->char_url}">{$value.title|replace:$menu->char_utf8:$menu->char_iso|lower}</a></li>
{else}
<li class="active">{$value.title|replace:$menu->char_utf8:$menu->char_iso|lower}</li>
{/if}
{/foreach}
</ul>
Est-ce qu'il y a une erreur de raisonnement? un problème de passage de variable?
Je vous remercie pour votre aide, car je me prends la tête depuis un moment.