Comment tronquer un text de BDD dans le modele ?
Bonjour.
J'aimerais pouvoir tronquer un texte avant son affichage finale dans la vue, donc le traiter directement dans le modele.
J'ai pour ce faire crée ma fonction dans lib/Blog.class.php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
class Blog
{
protected static $MaxCaracteres = 500;
static public function tronque($text)
{
// Test si la longueur du texte dépasse la limite
if (strlen($text)>self::$MaxCaracteres)
{
// Séléction du maximum de caractères
$text = substr($text, 0, self::$MaxCaracteres);
// Récupération de la position du dernier espace (afin déviter de tronquer un mot)
$position_espace = strrpos($text, " ");
$text = substr($text, 0, $position_espace);
// Ajout des "..."
$text = $text."...";
return $text;
}
}
} |
Maintenant voici le code d'affichage executeIndex de post/actions/action.class.php
Code:
1 2
|
$this->posts = Doctrine::getTable('BlogPost')->getAll(); |
Et voici comment je recupere le tout dans BlogPostTable.php
Code:
1 2 3 4 5 6 7 8 9 10
|
public function getAll()
{
return Doctrine_Query::create()->
select('p.title, p.category_id, p.slug, p.body, p.author, p.created_at, count(c.id) numcomments')->
from('BlogPost p, p.BlogComment c')->
orderBy('p.created_at DESC')->
groupBy('p.id')->
execute();
} |
Si vous avez la solution je suis prenneur.
Merci