[Résolu] Afficher un excerpt(NbMots) + 1ère image de l'article
Suricat
Member
Bonjour,
Sur ma Home, j'aimerai afficher les 2 ou 3 premiers articles avec leur chapo habituel.
Mais j'aimerai que les articles suivants soient affichés de façon différente :
avec la première image contenue dans chaque article suivie d'un excerpt présentant les 50 ou 60 premiers mots de l'article non formatés (suppression des mises en gras, italic, des liens...).
Bref, j'aurai besoin d'une fonction excerpt(NbMots) et d'une fonction GetFirstImage().
Si certains connaissent d'autres techniques pour faire ça, je suis preneur.
Edit :
C'est bon, j'ai réussi à faire ce que je voulais. Pour ceux qui voudraient la même chose. Voici mon code :
Sur ma Home, j'aimerai afficher les 2 ou 3 premiers articles avec leur chapo habituel.
Mais j'aimerai que les articles suivants soient affichés de façon différente :
avec la première image contenue dans chaque article suivie d'un excerpt présentant les 50 ou 60 premiers mots de l'article non formatés (suppression des mises en gras, italic, des liens...).
Bref, j'aurai besoin d'une fonction excerpt(NbMots) et d'une fonction GetFirstImage().
Si certains connaissent d'autres techniques pour faire ça, je suis preneur.
Edit :
C'est bon, j'ai réussi à faire ce que je voulais. Pour ceux qui voudraient la même chose. Voici mon code :
[== PHP ==]
function getExcerpt($str, $NbMots, $etc=' (...)')
{
if(strlen($str) > $NbMots*4) // il doit y avoir au moins NbMots de 3 caractères séparés d'un espace
{
$NbSpace=0;
for($i; $i<strlen($str); $i++)
{
$c = $str[$i];
if($c==' ')
{ $NbSpace++;
if($NbSpace==$NbMots)
{
$str = substr($str, 0, $i);
if($etc!=null) $str.=$etc;
break;
}
}
}
}
return $str;
}
[== PHP ==]
$chapo = $plxShow->plxMotor->plxRecord_arts->f('chapo');
$PosFinLienImg = strPos($chapo, '</a>')+4;
$LienImg = substr($chapo, 0, $PosFinLienImg);
// tableau avec le lien vers l'image et l'image à gauche
// et l'Excerpt de 40 mots à droite mis sous forme de lien vers l'article
$chapo='<table><tr><td class="ArtExcerptImg">'.$LienImg
.'</td><td class="ArtExcerptTexte">'
.'<a title="'.$plxShow->plxMotor->plxRecord_arts->f('title').'"'
.' href="'.$plxShow->plxMotor->plxRecord_arts->f('url').'">'
.getExcerpt(strip_tags(substr($chapo, $PosFinLienImg)), 40)
.'</a>';
echo($chapo);
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu pourras voir ma solution que j'utilise depuis quelques temps dans mes adaptations.