[Smarty] Affichage multiple d'un template
Bonjour, bonsoir,
Je butte sur un probleme d'affichage d'un smarty.
Une de mes classes contient une méthode qui se sert de smarty pour l'affichage. Ayant plusieurs instances de cette classe, je désire, sur mes pages, afficher autant de fois ce template que d'objets instanciés. Jusque là c'est logique.
La méthode remplie son office, le template fonctionne (vive l'attribut debugging de Smarty). Tout fonctionne oui, mais une seule fois seulement... :'(
Je n'ai pour l'instant que deux de ces objets instanciés, j'en aurai plus par la suite. Après l'affichage du premier template, le deuxième n'apparait pas, même pas dans la console de debogage de smarty...
Voilà quelques partie des scripts:
Extrait de la classe:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
<?php
class newsMenu{
protected $Name;
function margeMenu($text){
$Marge=array();
$req="SELECT id,about,titre,auteur,DATE_FORMAT(Date,'%d/%m/%Y') Date FROM tablenews WHERE TIMESTAMPDIFF(MONTH,Date,NOW())<=1";
$exec=$this->Connect->query($req,$this->fetchMode);
$Marge=$exec->fetchAll();
if(count($Marge)){
$smarty=$this->setSmarty();
$smarty->assign('titre',$text);
$smarty->assign('Menu',$Marge);
$smarty->assign('name',$this->Name);
$smarty->display('margemenu.tpl');
}
}
}
?> |
voilà le template margemenu.tpl
Code:
1 2 3 4 5 6 7 8 9 10
|
<div class="margeitem">
<h1>{$titre}</h1>
<ul class="list">
{foreach from=$Menu item=Line}
<li><a href="{$name}-{$Line.id}" title="par {$Line.auteur} le {$Line.Date}"><span class='about'>{$Line.about}:</span> {$Line.titre}</a></li>
{/foreach}
<li class="mini"><a href="news">{$name}</a></li>
</ul>
</div> |
et pour finir, l'appel de la methode pour mes deux objets stockés dans un tableau.
1ere tentative:
Code:
1 2 3 4 5
|
foreach($tab_obj as $key=>$obj){
$obj->margeMenu('objet'.$key);
} |
Deuxieme tentative, manuelle:
Code:
1 2 3
|
$tab_obj[1]->margeMenu('objet1');
$tab_obj[2]->margeMenu('objet2'); |
Dans les deux cas, seul le premier objet s'affiche.
Je pense qu'il s'agit d'une histoire de fichier de compilation mais la doc est plutot floue à ce sujet. Si quelqu'un pouvait m'enlver cette epine du pied, je lui en serai très reconnaissant. Bien maigre salaire mais enoooorme gratitude.
Merci ;)