Jump to content

Prestashop 1.7 : Afficher seulement un extrait de la description des catégories et lien "Lire la suite"


Recommended Posts

Bonjour,

Mon site est sous Prestashop 1.7 sur le thème par défaut. J'ai cherché attentivement sur le forum une solution qui réponde à mon besoins, sans succès.

J'aimerais publier pour chaque catégorie une description de 350 mots (pour le référencement naturel). Cependant, pour que les produits restent accessibles, je souhaiterais que seulement deux ou trois lignes de cette description soit visible par défaut et qu'un lien, "Lire la suite" par exemple, donne la possibilité aux visiteurs d'afficher et de lire le reste de la description. Un second lien "Masquer" permettrait de rétablir l'affichage initiale.

J'imagine que ces modifications doivent s'effectuer dans le fichier  category.tpl (themes > classic > templates > catalog > listing >). Cependant, je n'ai malheureusement pas les connaissances requises pour savoir quel code ajouter dans ce fichier et à quel endroit.

Voici le contenu actuel de ce fichier (le fichier a déjà été modifié selon un tutoriel pour afficher l'image de la catégorie sur toute la largueur du bloc description) :

{extends file='catalog/listing/product-list.tpl'}

{block name='product_list_header'}
    <div class="block-category card card-block hidden-sm-down">
      <h1 class="h1">{$category.name}</h1>
      {if $category.description}
        <div id="category-description" class="text-muted">{$category.description nofilter}</div>
        {*
        <div class="category-cover">
          <img src="{$category.image.large.url}" alt="{$category.image.legend}">
        </div>
        *}
        <br/>
        <div>
            <img src="{$category.image.large.url}" alt="{$category.image.legend}" class="img-thumbnail">
        </div>
      {/if}
    </div>
    <div class="text-xs-center hidden-md-up">
      <h1 class="h1">{$category.name}</h1>
    </div>
{/block}

 

J'espère que quelqu'un pourra m'aider. Je suis sûr que cette solution pourra intéresser un certain nombre de personnes

Merci de votre réponse !

Edited by darius1000 (see edit history)
  • Like 1
Link to comment
Share on other sites

Ca fonctionne. Merci beaucoup !

Maintenant, comment intégrer un lien pour pouvoir afficher et lire la suite de la description ?

Car actuellement, le reste de la description reste inaccessible aux utilisateurs et aux moteurs de recherche (référencement).

Merci !

Edited by darius1000 (see edit history)
Link to comment
Share on other sites

Pour ceux qui veulent comme moi afficher un extrait de la descriptions des catégories, voici la ligne de code à remplacer :

<DIV id="category-description" class="text-muted">{$category.description nofilter}</DIV>

par :

<div id="category-description" class="text-muted">{$category.description|strip_tags:'UTF-8'|truncate:295:'...'}</div>

 

Maintenant que l'extrait est affiché, quelqu'un sait comment ajouter un lien "Lire la suite" qui permettra aux utilisateurs et aux moteurs de recherche d'afficher et de lire le reste de la description ?

Merci d'avance

Link to comment
Share on other sites

  • 2 months later...
  • 4 weeks later...

Bonjour,

J'ai essayé également de mettre "Lire la suite" pour mes descriptifs catégories longs  mais ça n'a pas l'air de fonctionner pour la version 1.7.3. (alors que cela fonctionne 1.6).

Auriez-vous une idée de mon erreur. De plus, {$category.description|strip_tags:'UTF-8'|truncate:295:'...'} renvoie également les balises html et si j'ajoute nofilter, j'ai une page blanche. Merci par avance pour votre aide.

Merci

Lionel

	  <h1 class="h1 title-category">{$category.name}</h1>

      {if $category.description}
       <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"></script>
	   <style type="text/css">.show_hide {display:none;}</style>
		<!-- {$category.description nofilter} -->
		<script type="text/javascript">
			$(document).ready(function(){
			$("#category_description_full").hide();
			$(".lnk_more").show();                
			$('.lnk_more').toggle(function(){
				$("#category_description_full").slideDown(
				function(){
					$("#plus").text("Moins").addClass("less")
                		} 
                	);
                	$("#category_description_short").hide();
                },function(){
                	$("#category_description_full").slideUp(
                function(){
                	$("#plus").text("Plus").removeClass("less")
                		}
                	);	
                    $("#category_description_short").show();
           });
    });
</script>
		{if Tools::strlen($category.description) > 350}
		<div id="category-description_short" class="text-muted">{$category.description|strip_tags:'UTF-8'|truncate:295:'...'}</div>
		<div id="category_description_full" style="display:none">{$category.description nofilter}</div>
		<a href="#" class="lnk_more" id="plus">{l s='Lire la suite'}</a></p>
		{else}
		<div id="category_description_full" style="display:none">{$category.description nofilter}</div>
		{/if}
		{/if}
	</div>
      {/if}

 

Link to comment
Share on other sites

  • 9 months later...
  • 1 year later...

Bonjour, 

je remonte le post car la question m'intéresse. comment faire pour afficher le début de la description d'une catégorie, puis un lien "en savoir plus", pour déplier la suite?

Donc on a le début de réponse puis réduire le texte en modifiant le fichier   category.tpl (themes > classic > templates > catalog > listing

il manque le "dépliage"

Merci d'avance la communauté Presta & bonne journée

Link to comment
Share on other sites

  • 1 year later...
Il y a 2 heures, enmoderugby a dit :

Bonjour,

Je relance cette discussion pour savoir si une solution a été trouvée. 

Etonnant qu'on ne puisse pas réduire/augmenter la description de la catégorie comme sur PS 1,6 

Il est toujours possible de reprendre le code utilisé par la version 1.6, il n'est pas parfait, mais il est disponible.

Link to comment
Share on other sites

  • 2 months later...

Voici le code à modifier dans category.tpl (themes > VOTRE THEME > templates > catalog > listing)

Remplacer : <div id="category-description">{$category.description nofilter}</ div> (linge 39)

Par

Nouveau code :

                    <div id="category-description_short">{$category.description|strip_tags:'UTF-8'|truncate:350:'...'}</div>
              <details>
                <summary>{l s='Lire la suite...'}</summary>
            <div id="category_description_full">{$category.description nofilter}</div>
              </details>

et le tour est joué !

Edited by pgredin (see edit history)
  • Like 1
Link to comment
Share on other sites

  • 1 month later...

Recherche la DIV où il y a ta description et tu remplaces par :

 <div id="category-description_short">{$category.description|strip_tags:'UTF-8'|truncate:350:'...'}</div>
              <details>
                <summary>{l s='Lire la suite...'}</summary>
            <div id="category_description_full">{$category.description nofilter}</div>
              </details>

Ou poste là à la suite qu'on puisse se voir !

Edited by pgredin (see edit history)
Link to comment
Share on other sites

21 minutes ago, enmoderugby said:

Moi je n'ai pas le code <div id="category-description">{$category.description nofilter}</ div> (linge 39) dans le fichier category.tpl  (je suis sous PS 1,7,8,6

Tu peux aussi faire ça si tu veux pas une double description

<div id="category-description_short">{$category.description|strip_tags:'UTF-8'|truncate:0:'...'}</div>
              <details>
                <summary>{l s='Lire la suite...'}</summary>
            <div id="category_description_full">{$category.description nofilter}</div>
              </details>

Link to comment
Share on other sites

  • 4 months later...

Bonjour,

Avez-vous une solution ? car fonctionne la 1ere méthode affiche les 350 premiers caractères de la description puis quand on clique sur "lire la suite", ça affiche à nouveau les lignes déjà affichées +  la suite du texte.

et la deuxième méthode on n' a que le lien "lire la suite", mais pas de début de description.

Je suis sur prestashop  1.7.8.7

Merci d'avance

 

Edited by loupiloop (see edit history)
Link to comment
Share on other sites

Bonjour, 

Pour les pages catégories, j'utilise finalement le module Category second description (gratuit), qui permet d'ajouter une description en bas après les produits. Du coup, j'a iune courte description d'accroche en haut, avec une image, et une plus longue descritpion en bas, pour le SEO.

J'utilise aussi, depuis peu TinyMCE Pro, (payant mais pas très cher) qui permet d'avoir un éditeur de texte enrichi à tous les endroits où on peut mettre du texte (pages cms, catégories, produits...) et on peut (entre autre) faire un accordéon.

https://lyn-et-or-bijoux.com/53-boucles-d-oreille-acier-femme

Bonne journée

Link to comment
Share on other sites

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...