Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Salut,
j'utilise Zend Framework et je cherche une solution pour limiter l'affichage d'un texte à un certain nombre de caractères suivi du lien "afficher la suite"
je ne trouve pas grande chose dans la documentation du ZF y a t-il une technique comme celle utilisée avec Zend_Paginator par exemple?
Hors ligne
Bonjour,
Il faut créer une aide de vue, il n'existe rien d'origine pour faire cela.
Hors ligne
Salut,
Voilà une aide de vue qui te permet de couper un texte en fonction du nombre de mots que tu désires afficher
[lang=php] /* $param: $chaine : le texte à couper $nbmots : le nombre de mot à afficher */ class Zend_View_Helper_Resume{ public function resume($chaine, $nbmots) { $chaine = preg_replace('!<br.*>!iU', "", $chaine); // remplacement des BR par des espaces $chaine = strip_tags($chaine); $chaine = preg_replace('/ss+/', ' ', $chaine); // retrait des espaces inutiles $tab = explode(" ", $chaine); if (count($tab) <= $nbmots) { $affiche = $chaine; } else { $affiche = "$tab[0]"; for ($i = 1; $i < $nbmots; $i++) { $affiche .= " $tab[$i]"; } $affiche .= "...Lire"; } return $affiche; } }
Dernière modification par amiss (06-08-2012 23:31:44)
Hors ligne
merci pour vos réponses,j'ai résolu le problème en utilisant un simple code php
Hors ligne
ça ne s’appelle pas résoudre le problème si tu n'as pas utilisé une aide de vue mais 'bricoler'
Hors ligne
amiss a écrit:
Salut,
Voilà une aide de vue qui te permet de couper un texte en fonction du nombre de mots que tu désires afficherCode:
[lang=php] /* $param: $chaine : le texte à couper $nbmots : le nombre de mot à afficher */ class Zend_View_Helper_Resume{ public function resume($chaine, $nbmots) { $chaine = preg_replace('!<br.*>!iU', "", $chaine); // remplacement des BR par des espaces $chaine = strip_tags($chaine); $chaine = preg_replace('/ss+/', ' ', $chaine); // retrait des espaces inutiles $tab = explode(" ", $chaine); if (count($tab) <= $nbmots) { $affiche = $chaine; } else { $affiche = "$tab[0]"; for ($i = 1; $i < $nbmots; $i++) { $affiche .= " $tab[$i]"; } $affiche .= "...Lire"; } return $affiche; } }
Merci bien pour l'aide,c'est une bonne proposition, mais je ne sais pas comment l'adapter afin que lorsque je clique sur ...lire m'affiche la suite.Si vous savez comment n'hésitez pas de m'aider.
Merci bien.
Hors ligne
salut,
on l'utilise comme tout autre helper de vue.Par exemple depuis un script de vue:
[lang=php] $texteEntier="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque eget commodo felis. Aenean erat diam, bibendum quis vulputate non, lobortis ac quam."; $nbDeMots=10; echo $this->resume($texteEntier,$nbDeMots);
Hors ligne