Jump to content

Augmenter Taille Description Courte Des Categories


Recommended Posts

Bonjour,

 

je voudrais augmenter le nombre de caractère de la description courtes des CATEGORIES dans prestashop 1.6.1.3. (voir fichier joint). Il est important que la description de la catégorie s'afffiche en entier car c'est pour afficher un texte de loi dans le cadre d'objet allemand de la 2de guerre mondiale à vendre pour les reconstitutions historiques.

 

Je suis allée dans le fichier catégory.tpl et j'ai modifié les deux lignes {if Tools::strlen($category->description) > 350}

mais ça ne fonctionne toujours pas, je pense que je dois supprimer les lignes du dessous où y changer qq chose mais je ne m'y connais aps assez, je ne trouve pas la solution =/

 

voici le code avec ma modif:

 

{if $scenes || $category->description || $category->id_image}
            <div class="content_scene_cat">
                 {if $scenes}
                     <div class="content_scene">
                        <!-- Scenes -->
                        {include file="$tpl_dir./scenes.tpl" scenes=$scenes}
                        {if $category->description}
                            <div class="cat_desc rte">
                            {if Tools::strlen($category->description) > 850}
                                <div id="category_description_short">{$description_short}</div>
                                <div id="category_description_full" class="unvisible">{$category->description}</div>
                               <a href="{$link->getCategoryLink($category->id_category, $category->link_rewrite)|escape:'html':'UTF-8'}" class="lnk_more">{l s='More'}</a>
                            {else}
                                <div>{$category->description}</div>
                            {/if}
                            </div>
                        {/if}
                    </div>
                {else}
                    <!-- Category image -->
                    <div class="content_scene_cat_bg"{if $category->id_image} style="background:url({$link->getCatImageLink($category->link_rewrite, $category->id_image, 'category_default')|escape:'html':'UTF-8'}) right center no-repeat; background-size:cover; min-height:{$categorySize.height}px;"{/if}>
                        {if $category->description}
                            <div class="cat_desc">
                            <span class="category-name">
                                {strip}
                                    {$category->name|escape:'html':'UTF-8'}
                                    {if isset($categoryNameComplement)}
                                        {$categoryNameComplement|escape:'html':'UTF-8'}
                                    {/if}
                                {/strip}
                            </span>
                            {if Tools::strlen($category->description) >850}
                                <div id="category_description_short" class="rte">{$description_short}</div>
                                <div id="category_description_full" class="unvisible rte">{$category->description}</div>
                                <a href="{$link->getCategoryLink($category->id_category, $category->link_rewrite)|escape:'html':'UTF-8'}" class="lnk_more">{l s='More'}</a>
                            {else}
                                <div class="rte">{$category->description}</div>
                            {/if}
                            </div>
                        {/if}
                     </div>
                  {/if}
            </div>
        {/if}

 

Merci beaucoup

 

Mélanie

post-41506-0-01790700-1457003675_thumb.jpg

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

nan je ne veux pas agra,ndir la description courte des produits mais des CATEGORIES.

J'ai vu les posts sur les descritpion courtes des produits, çàa faity des heures que je fais des recherches, c'est d'ailleurs ce qui m'a aidé à faire les modif que j'ai faites pour le moment, ça m'a donné des pistes mais là je bloque

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

La manière d'aborder le problème des descriptions dans catégories à toujours été "idiote".

 

Fais un div, colle ta description dedans et size-là en height em avec overflow: hidden, et en js tu passe la height: auto quand tu veux tout afficher tout et retour à ta height en em

 

Pourquoi idiote? Parce que 300m n'occupent pas la même taille que 300i dans une fonte usuelle de lecture

Link to comment
Share on other sites

le tpl

 

        {if $category->description}
          <div class="cat_desc">
              <div id="category_description" class="truncated">{$category->description}</div>
              <a class="more" href="#" onclick="return toggleMoreLess(this);" class="lnk_more">{l s='More'}</a>
          </div>
          <script type="text/javascript">
            {literal}
              function toggleMoreLess(el) {
                if ($(el).hasClass('more')) {
                  var div = $('#category_description');
                  div.removeClass('truncated');
                  div.addClass('full');
                  $(el).removeClass('more');
                  $(el).addClass('less');
                  $(el).html('{/literal}{l s='Less' js=1}{literal}');
                }
                else {
                  var div = $('#category_description');
                  div.removeClass('full');
                  div.addClass('truncated');
                  $(el).removeClass('less');
                  $(el).addClass('more');
                  $(el).html('{/literal}{l s='More' js=1}{literal}');
                }
                return false;
              }
            {/literal}
          </script>
        {/if}

le css

 

#category_description.truncated { height: 7em; overflow: hidden; text-overflow: ellipsis; }
#category_description.full { height: auto; overflow: hidden; }

Bon c'est volontairement un peu verbeux afin que vous compreniez toute la mecanique

Link to comment
Share on other sites

il y a encore un compliateur smary dans la version 1.6.1.3? je ne l'ai pas vu =/

 

habituellement toutes mes modif passe sans soucis.

là si je supprime le fichier tpl et que je rafraichi la page, c'est pris en charge de suite. Je rebalance le tpl, je retrouve la mm configuration qu'avant =/

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

Doekia : ça me supprime totalement le titre et la description, je pense que jai merdé l'implntation de ton code.

Tu voudrais bien jeter un oeil si ça te dérange pas trop stp =/

Je suis dls de faire mon boulet =(

 

Voici le code complet de categroy.tpl :

 

{*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2015 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*}
{include file="$tpl_dir./errors.tpl"}
{if isset($category)}
    {if $category->id AND $category->active}
        {if $scenes || $category->description || $category->id_image}
            <div class="content_scene_cat">
                 {if $scenes}
                     <div class="content_scene">
                        <!-- Scenes -->
                    {include file="$tpl_dir./scenes.tpl" scenes=$scenes}
        {if $category->description}
          <div class="cat_desc">
              <div id="category_description" class="truncated">{$category->description}</div>
              <a class="more" href="#" onclick="return toggleMoreLess(this);" class="lnk_more">{l s='More'}</a>
          </div>
          <script type="text/javascript">
            {literal}
              function toggleMoreLess(el) {
                if ($(el).hasClass('more')) {
                  var div = $('#category_description');
                  div.removeClass('truncated');
                  div.addClass('full');
                  $(el).removeClass('more');
                  $(el).addClass('less');
                  $(el).html('{/literal}{l s='Less' js=1}{literal}');
                }
                else {
                  var div = $('#category_description');
                  div.removeClass('full');
                  div.addClass('truncated');
                  $(el).removeClass('less');
                  $(el).addClass('more');
                  $(el).html('{/literal}{l s='More' js=1}{literal}');
                }
                return false;
              }
            {/literal}
          </script>
        {/if}
                       
                     </div>
                  {/if}
            </div>
        {/if}
        <h1 class="page-heading{if (isset($subcategories) && !$products) || (isset($subcategories) && $products) || !isset($subcategories) && $products} product-listing{/if}"><span class="cat-name">{$category->name|escape:'html':'UTF-8'}{if isset($categoryNameComplement)} {$categoryNameComplement|escape:'html':'UTF-8'}{/if}</span>{include file="$tpl_dir./category-count.tpl"}</h1>
        {if isset($subcategories)}
        {if (isset($display_subcategories) && $display_subcategories eq 1) || !isset($display_subcategories) }
        <!-- Subcategories -->
        <div id="subcategories">
            <p class="subcategory-heading">{l s='Subcategories'}</p>
            <ul class="clearfix">
            {foreach from=$subcategories item=subcategory}
                <li>
                    <div class="subcategory-image">
                        <a href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'html':'UTF-8'}" title="{$subcategory.name|escape:'html':'UTF-8'}" class="img">
                        {if $subcategory.id_image}
                            <img class="replace-2x" src="{$link->getCatImageLink($subcategory.link_rewrite, $subcategory.id_image, 'medium_default')|escape:'html':'UTF-8'}" alt="{$subcategory.name|escape:'html':'UTF-8'}" width="{$mediumSize.width}" height="{$mediumSize.height}" />
                        {else}
                            <img class="replace-2x" src="{$img_cat_dir}{$lang_iso}-default-medium_default.jpg" alt="{$subcategory.name|escape:'html':'UTF-8'}" width="{$mediumSize.width}" height="{$mediumSize.height}" />
                        {/if}
                    </a>
                       </div>
                    <h5><a class="subcategory-name" href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'html':'UTF-8'}">{$subcategory.name|truncate:25:'...'|escape:'html':'UTF-8'}</a></h5>
                    {if $subcategory.description}
                        <div class="cat_desc">{$subcategory.description}</div>
                    {/if}
                </li>
            {/foreach}
            </ul>
        </div>
        {/if}
        {/if}
        {if $products}
            <div class="content_sortPagiBar clearfix">
                <div class="sortPagiBar clearfix">
                    {include file="./product-sort.tpl"}
                    {include file="./nbr-product-page.tpl"}
                </div>
                <div class="top-pagination-content clearfix">
                    {include file="./product-compare.tpl"}
                    {include file="$tpl_dir./pagination.tpl"}
                </div>
            </div>
            {include file="./product-list.tpl" products=$products}
            <div class="content_sortPagiBar">
                <div class="bottom-pagination-content clearfix">
                    {include file="./product-compare.tpl" paginationId='bottom'}
                    {include file="./pagination.tpl" paginationId='bottom'}
                </div>
            </div>
        {/if}
    {elseif $category->id}
        <p class="alert alert-warning">{l s='This category is currently unavailable.'}</p>
    {/if}
{/if}
 

Link to comment
Share on other sites

Bon maintenant, je vais te brusquer un peu  :wacko:  parce que tu le vaux bien :D
 
Si tu veux manipuler une structure html un peu complexe, la première chose à faire est de s’astreindre à un rien de discipline.
Tu t'y retrouvera et tu pourra débugguer, voire ne pas faire d'erreurs.
 
Si tu avais respecté l'indentation, tu aurais remarqué que tu avais collé ton code dans une structure {if $scene}, que tu as d'ailleurs passablement charcuté.
Donc ce tpl est invalide, ne compile pas c'est tout.
 
Le code d'origine d'une 1.6.1.4 est le suivant:

            	 {if $scenes}
                 	<div class="content_scene">
                        <!-- Scenes -->
                        {include file="$tpl_dir./scenes.tpl" scenes=$scenes}
                        {if $category->description}
                            <div class="cat_desc rte">
                            {if Tools::strlen($category->description) > 350}
                                <div id="category_description_short">{$description_short}</div>
                                <div id="category_description_full" class="unvisible">{$category->description}</div>
                                <a href="{$link->getCategoryLink($category->id_category, $category->link_rewrite)|escape:'html':'UTF-8'}" class="lnk_more">{l s='More'}</a>
                            {else}
                                <div>{$category->description}</div>
                            {/if}
                            </div>
                        {/if}
                    </div>
	           {else}
                    <!-- Category image -->
                    <div class="content_scene_cat_bg"{if $category->id_image} style="background:url({$link->getCatImageLink($category->link_rewrite, $category->id_image, 'category_default')|escape:'html':'UTF-8'}) right center no-repeat; background-size:cover; min-height:{$categorySize.height}px;"{/if}>
                        {if $category->description}
                            <div class="cat_desc">
                            <span class="category-name">
                                {strip}
                                    {$category->name|escape:'html':'UTF-8'}
                                    {if isset($categoryNameComplement)}
                                        {$categoryNameComplement|escape:'html':'UTF-8'}
                                    {/if}
                                {/strip}
                            </span>
                            {if Tools::strlen($category->description) > 350}
                                <div id="category_description_short" class="rte">{$description_short}</div>
                                <div id="category_description_full" class="unvisible rte">{$category->description}</div>
                                <a href="{$link->getCategoryLink($category->id_category, $category->link_rewrite)|escape:'html':'UTF-8'}" class="lnk_more">{l s='More'}</a>
                            {else}
                                <div class="rte">{$category->description}</div>
                            {/if}
                            </div>
                        {/if}
                     </div>
                  {/if}
            </div>
	    {/if}

Donc, tu dois remplacer les 59 à 65, puis éventuellement les lignes 36 à 42 dans ton cas. (Fais dans cet ordre, du bas vers le haut)

Par contre le code que je t'ai donné, sert à faire la même chose qu'actuellement mais correctement.

Or, ce que tu souhaites, c'est toujours avoir la totalité de la description c'est bien cela?

 

Dans ce cas tu remplaces chaque portion des lignes mentionnées par:

<div class="rte">{$category->description}</div>

C'est tout !

Link to comment
Share on other sites

ok, merci bcp Doeki, oui j me doutais bien que j'avais mal redigé quelques chose.... En fait je suis de la vieille ecole et du vieux code html, le php et javascript c'est très flou pour  moi. D'hbitude j'arrive à mon sortir avec ce que je sais mai là ça ne suffiait clairement pa =/

Merci,encore pour ton aide, je vais appliquer ça de suite.

 

Merci encore !

 

 

ps : comme je le disais plus haut j'ai la version  1.6.1.3, c'est pour ça aussi que le code diffère je pense =)

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

Vielle école? Tu ne peux être plus vielle école que moi a moins d'avoir fait de html au sylex. La feuille de style c'était d'une galère :D

 

Sans rire le mot d'ordre c'est:

IMBRIQUER - INDENTER, REMONTER - RECULER

 

Peu importe html ou smarty applique cette règle est tout devient plus facile.

 

PS: SublimeText et http://jsbeautifier.org/ sont des amis précieux

Link to comment
Share on other sites

lol, ptdr de ma part c'était un sarcasme, car il suffit de relire ce topic pour avoir toutes les réponses.

 

J'ai l'impression que vous confondez aide communautaire avec: "Hey, je vais avoir un développement personnalisé gratuit."

  • Like 2
Link to comment
Share on other sites

Ceal semble compliquer de prendre le temps de lire tout ce qui est expliqué.

 

Franchement, je n'arrive plus à me motiver pour aider vu le niveau des demandes.

 

surtout qu'il existe une documentation officielle et des milliards de tuto mais que les gens ne font aucun effort pour comprendre que créer un ecommerce demande des compétences, soit ils prennent le temps de les acquérir soit ils payent des intervenant extérieur.

 

C’est comme ils demandaient à des maçons de tout forunir juste pour un smiley par texto. La bonne blague. Je vais aussi faire cela avec mon dentiste, franchement traiter un dent cela ne doit pas être bien sorcier et surtout les techniques n'évolues jamais.

  • Like 1
Link to comment
Share on other sites

Bon, j'ai cherché et j'ai trouvé, je cherchais trop compliqué en fin de compte.

Pour info, j'ai pris le temps de lire et relire et de rerelire et je ne cherche pas la solution tombée du ciel ou de vous les experts. 

Merci pour les infos, ça me permet aussi d'apprendre et d'avancer dans la construction de mon site

:wacko:  :mellow:  :)

  • Like 1
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...