Jump to content

Résolu | Fonction Truncate uniquement sur le texte et pas sur les balises HTML


Toulousain

Recommended Posts

Bonjour,

Sur mon site la description courte correspond à la description longue tronquée à 300 caractères.

Pour ce faire j'ai remplacé dans le product.tpl 

Quote

{$product.description_short nofilter}

Par 

Quote

{$product.description nofilter}

J'ai bien la description longue qui s'affiche a la place de la description courte mais il faut la tronquer.

Pour tronquer la description a 300 caractères j'ai rajouté  |truncate:300:"..." 

ce qui donne 

Quote

{$product.description_short|truncate:300:"..." nofilter}

A ce stade j'ai la description comme souhaité.

Ce qui me gêne c'est que le truncate ne tronque pas que le texte mais prend en compte les caractères HTML ce qui dans certains cas modifie la mise en forme de la page produit.

par exemple si je souhaite tronquer mon texte au dixième caractères

ma balise html qui encapsule le texte

Quote

<p class="cs80D9435B">mon texte

 devient 

Quote

<p... 

Auriez vous une solution ou une préconisation a me soumettre qui permettrai a la fonction truncate d'éviter de tronquer les balises HTML ?

Par avance merci de votre retour,

Cordialement

Edited by Toulousain
Résolu (see edit history)
Link to comment
Share on other sites

  • Toulousain changed the title to Fonction Truncate uniquement sur le texte et pas sur les balises HTML

Bonjour,

Il faudrait retirer les balises, tronquer la description puis remettre les balises, ce qui n'est pas vraiment envisageable.

Si je peux me permettre, je trouve qu'utiliser le début de la description longue n'est pas terrible ni pour le référencement, ni pour les visiteurs. Il vaut mieux utiliser la description courte afin de placer un texte différent de la description longue, et qui comporte directement les informations les plus utiles pour les visiteurs.

  • Like 2
Link to comment
Share on other sites

Bonjour Divine et merci pour votre retour rapide et vos remarques,

La description courte est un extrait optimisé pour le seo car j'y intègre d'autre éléments comme la marque ou la ref et des REPLACE par conséquent l'extrait est dilué et me permet je pense de répondre a la demande du client et celle des moteurs.

La boutique comprend 140 000 produits et effectivement retirer les balises, tronquer la description puis remettre les balises n'est pas ce qu'il y a de mieux.

Je continu de chercher de mon coté sur le moteur smarty en attendant de voir si il n'y a pas de meilleurs solutions.

Merci encore

 

Link to comment
Share on other sites

Il y a 4 heures, doekia a dit :

Le plus simple étant de toute manière de ne rien tronquer en terme de balisage mais de faire cette réduction via css

en jouant avec overflow et text-overflow

Salut,

2 fois le même texte sur la même page, je suis pas convaincu par la solution pour le SEO.
Mais dans tous les cas, le truncate aurait le même effet au final.

Link to comment
Share on other sites

Bonjour et merci Doekia et Mediacom87 pour vos remarques et suggestions .

Doekia j'ai eu la même réaction que Mediacom87.

Je me suis dit (visiblement à tort) que masquer une partie de la description en CSS règlerai le probleme du truncate coté visiteurs mais pas pour les robots (seo).

Pourriez vous m'en dire un peu plus sur la technique de l'overflow via js ?

En quoi consiste-t-elle car j'avoue ne pas connaitre.

Auriez vous un exemple, une doc/tuto ou un post a me communiquer pour me mettre sur la piste ? 

Encore merci à vous pour votre implication.

 

Link to comment
Share on other sites

Félicitations je vous décerne la palme d'or Mediacom87 car j'ai cherché et testé tout un tas de possibilités sans avoir de résultats aussi parfait.

Ca marche parfaitement, le html est conservé a merveille et le texte tronqué au bon endroit.

 Voici un exemple du résultat obtenu.

Quote

<p class="cs95E872D0"><span class="csA7555675">Une conception brevetée, un choix rigoureux de matériaux et une qualité de fabrication extrême garantissent aux filtres Twin Air des performances et un niveau de protection inégalés...</span></p>

Pour que votre proposition fonctionne sur presta 1.7.8.3 j'ai remplacé 

Quote

{Tools::truncateString($product->description, 300)}

Par

Quote

{Tools::truncateString($product.description, 300)}

et pour n'afficher que le texte sans les balises html il faut rajouter "nofilter"

ce qui donne 

Quote

{Tools::truncateString($product.description, 300) nofilter}

Encore merci à vous Mediacom87 d'avoir continué a chercher une solution de votre coté alors que vous étiez déjà intervenu sur le sujet.

La résilience finit par payer.

Merci également à Divine et Doekia.

Link to comment
Share on other sites

Très bonne idée et très bon article,

Du coup j'ai découvert votre site et je vois que vous traitez pas mal de sujet.

Auriez vous des infos a me communiquer au sujet du dossier microdata nouvellement intégré dans le thème classic de PrestaShop ? /themes/classic/templates/_partials/microdata

Je constate en parallèle que les données structurées, Rich snippet...  ont disparus sur les pages TPL product, list......

Je cherche des infos car j'aimerais mettre à jour mon thème, c'est a dire supprimer les données structurées, Rich snippet... des pages et intégrer le dossier microdata.

Si vous avez des infos je suis preneur .

Merci

 

 

Link to comment
Share on other sites

  • Toulousain changed the title to Résolu | Fonction Truncate uniquement sur le texte et pas sur les balises HTML

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...