Problème d'affichage pour menu (lien actif) avec smarty et php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème d'affichage pour menu (lien actif) avec smarty et php

par ouckileou » 20 avr. 2008, 19:08

Modération :
Newsmarty, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

Problème d'affichage pour menu (lien actif) avec smarty et p

par Newsmarty » 20 avr. 2008, 18:59

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.