Traitement des textes sous magento
septembre 3, 2013 3 CommentairesPetit 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.
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
Le Css3 c’est pratique, mais malheureusement pas compatible partout. Si ce n’est pas le cas, le design peut être explosé.
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.