Traitement des textes sous magento

septembre 3, 2013 3 Commentaires

Petit article de la rentrée sur le traitement de texte sous magento, nous allons voir rapidement comment tronquer la longueur d’un texte pour afficher une partie de celui-ci et trois petits points… Trois petits points ou autre chose, ou même rien du tout. C’est souvent utilisé pour limiter la longueur de la description courte sur une page de catégorie en mode liste ou grille ou bien sur une page produit, pour la short description ou d’autres variables.

Comment limiter le nombre de caractères avec les méthodes magento.

<?php
$shortDesc = $_helper->productAttribute($_product, nl2br($_product->getShortDescription()), 'short_description');
$remainder= ''; 
$txtSansBaliseHtml = Mage::helper('core/string')->truncate(Mage::helper('core')->stripTags($shortDesc), 100, '...', $remainder, false);
$txtAvecBaliseHtml = Mage::helper('core/string')->truncate($shortDesc, 100, '...', $remainder, false);
echo $txtSansBaliseHtml ."<br><br>";
echo $txtAvecBaliseHtml;
?>

Voici le rendu, le premier affiche le contenu de la variable sans les balises html. Le deuxième affiche les balises html ( j’ai mis un H1 au milieu de la description courte )

Supprimer les accents

$str = "éeéeèéàé";
	echo $str."<br>";
	$strUn = Mage::helper('core')->removeAccents($str);

Voilà c’est la rentrée on fait court, pas évident d’écrire un billet en tongs et lunettes de soleil.
Si vous connaissez d’autres méthodes pour traiter les textes sous magento, faites-nous en profiter.

Code
3 commentaires : “Traitement des textes sous magento”
  1. Nolwennig dit :

    Hi,

    en CSS3 la propriété text-overflow : ellipsis; donne le même rendu.

    source : http://www.w3schools.com/cssref/css3_pr_text-overflow.asp

    ;)

  2. cédric rousset dit :

    Le Css3 c’est pratique, mais malheureusement pas compatible partout. Si ce n’est pas le cas, le design peut être explosé.

  3. Harry Green dit :

    j’ai un texte très long, il est stocké dans ma base de donnée, et je souhaite stocker dans une table ce même texte avec les occurences supprimés et dans une autre table qui contient 2 colonnes avec chaque mot et le nombre d’occurences. d’abord j’ai mon texte en entrée, il va prendre le premier mot et en meme temps on initialise une variable qui contient le nombre d’occurences du mot courant qui commencera à 1, et il va boucler sur reste du texte et dès qu’il trouve une occurence de mot il la supprime et et incremente la variable jusqu’a la fin du texte ensuite passer au mot suivant et répeter la procedure. remarques: si par exemple on trouve un mot « bateau » et « bateaux » je veux qu’il les considère comme un seul mot mais qu’il stocke que le mot en pluriel, pour ca je pense que la regex c’est bien ‘/mot[x|s]?/’ n’est-ce pas? mais n’etant pas à l’aise avec php je ne sais pas comment se deplacer dans le texte, si une ame charitable puisse m’aider ce serai très sympa. merci par avance.

Poster un commentaire

(obligatoire)

(obligatoire)