Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Templates > Smarty
Smarty Forum d'entraide sur le moteur de templates Smarty. Avant de poster -> FAQ Smarty et Cours Smarty
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/03/2007, 11h16   #1
Invité régulier
 
Inscription : août 2006
Messages : 64
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 64
Points : 5
Points : 5
Par défaut Limité foreach aux 5 premiers resultats ?

salut,

j'utilise freeglobes et la fonction foreach pour afficher les sites les plus populaires.

Comment faire pour n'afficher que les 5 premiers sites ?

Fonction foreach dans freeglobes
Code :
1
2
3
4
 
<{foreach item=topsite from=$topsites}>
<li><a href="<{$topsite.url}>" class="_blank"><{$topsite.name}></a></li>
<{/foreach}>
Merci
gandolfi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 14h46   #2
Membre régulier
 
Développeur informatique
Inscription : octobre 2002
Messages : 79
Détails du profil
Informations personnelles :
Âge : 35

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2002
Messages : 79
Points : 97
Points : 97
avec foreach je crois pas que ce soit possible

par contre on peut le faire avec une section en mettant l'attribut max=5
CiTriX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 20h28   #3
Membre Expert
 
Avatar de eric.pommereau
 
Homme ERIC POMMEREAU
Ingénieur intégration
Inscription : décembre 2004
Messages : 683
Détails du profil
Informations personnelles :
Nom : Homme ERIC POMMEREAU
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2004
Messages : 683
Points : 1 294
Points : 1 294
Bonjour,

Même si je ne trouve pas cela très "propre" (normalement tu devrais sélectionner tes 5 éléments dans le script php) tu peux évaluer l'index de ta boucle avec if comme suit:

Code :
1
2
3
4
5
6
7
	<ul>
	{foreach item=topsite from=$topsites name=top_5_sites}
		{if $smarty.foreach.top_5_sites.index <= 5 }
		<li><a href="{$topsite.url}" class="_blank">{$topsite.name}</a></li>
		{/if}
	{/foreach}
	</ul>
La contrainte est de nommer ta boucle (voir l'attribut name=...) pour accèder à l'index courant de la boucle.

Aussi attention de ne pas écrire:

Code :
<a href="<{$topsite.url}>">
Mais bien

Code :
<a href="{$topsite.url}">


Voilà en epérant avoir répondu à ta demande.

@+
eric.pommereau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2007, 18h34   #4
Invité régulier
 
Inscription : août 2006
Messages : 64
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 64
Points : 5
Points : 5
Merci cela marche mais avec ce code:

Code :
1
2
3
4
5
<{foreach item=topsite from=$topsites name=top_5_sites}>
		<{if $smarty.foreach.top_5_sites.index <= 5 }>
		<li><a href="<{$topsite.url}>" class="_blank"><{$topsite.name}></a></li>
		<{/if}>
	<{/foreach}>
gandolfi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h56.


 
 
 
 
Partenaires

Hébergement Web