Jump to content

[RESOLU]Limiter le nombre de produit de la même catégorie affiché


xavpiaf
 Share

Recommended Posts

Bonjour,

Je voudrais limiter le nombre de produits afficher , sur la page produit dans l'espace dédié aux produits de la même catégories.
Je voudrais seulement en afficher 4.
Voici mon code :

{if count($categoryProducts) > 0}



       {foreach from=$categoryProducts item='categoryProduct' name=categoryProduct}
       {if $categoryProduct.index > 4} 

 TATATATATATA        
       {else}



         {if $categoryProduct.new == 1}{l s='New'}
{/if}
         {if $categoryProduct.on_sale}
{l s='On sale!'}
         {elseif ($categoryProduct.reduction_price != 0 || $categoryProduct.reduction_percent != 0) && ($categoryProduct.reduction_from == $categoryProduct.reduction_to OR ($smarty.now|date_format:'%Y-%m-%d' <= $categoryProduct.reduction_to && $smarty.now|date_format:'%Y-%m-%d' >= $categoryProduct.reduction_from))}
{l s='Price lowered!'} {convertPrice price=$categoryProduct.price_without_reduction}

         {/if}
         {if ($categoryProduct.quantity > 0)}

{if $categoryProduct.quantity == 0}{if $allow_oosp}{$categoryProduct.available_later}{else}{/if}{else}{$categoryProduct.available_now}{/if}{else}             0}{elseif $categoryProduct.allow_oosp}{l s=$categoryProduct.available_later} style="display:none;"{/if}>
{l s='Out of stock'}              
{if $categoryProduct.quantity > 0}{elseif $categoryProduct.allow_oosp}{l s=$categoryProduct.available_later}{/if}

        {/if}

getProductLink($categoryProduct.id_product, $categoryProduct.link_rewrite, $categoryProduct.category)}" title="{$categoryProduct.name|htmlspecialchars}">
getImageLink($categoryProduct.link_rewrite, $categoryProduct.id_image, 'large')}" alt="{$categoryProduct.name|htmlspecialchars}" />

getProductLink($categoryProduct.id_product, $categoryProduct.link_rewrite, $categoryProduct.category, $categoryProduct.ean13)}" title="{$categoryProduct.name|htmlspecialchars}">{$categoryProduct.name|truncate:25:'...'|escape:'htmlall':'UTF-8'}


getProductLink($categoryProduct.id_product, $categoryProduct.link_rewrite, $categoryProduct.category)}" title="{$categoryProduct.name|htmlspecialchars}" title="{l s='More' mod='productscategory'}">{$categoryProduct.description_short|strip_tags|truncate:140s:'...'}


{displayWtPrice p=$categoryProduct.price}
getProductLink($categoryProduct.id_product, $categoryProduct.link_rewrite, $categoryProduct.category)}" title="{$categoryProduct.name|htmlspecialchars}" title="{l s='View' mod='productscategory'}">{l s='View' mod='productscategory'}



{/if}
       {/foreach}


{/if}


Merci d'avance pour vos réponses
Cordialement,

Share this post


Link to post
Share on other sites

  • 1 month later...

I have the same request. Can you help me please?

{if count($categoryProducts) > 0}


       {foreach from=$categoryProducts item='categoryProduct' name=categoryProduct}



         {if $categoryProduct.new == 1}{l s='new'}
{/if}
         {if $categoryProduct.on_sale}
{l s='On sale!'}
         {elseif ($categoryProduct.reduction_price != 0 || $categoryProduct.reduction_percent != 0) && ($categoryProduct.reduction_from == $categoryProduct.reduction_to OR ($smarty.now|date_format:'%Y-%m-%d' <= $categoryProduct.reduction_to && $smarty.now|date_format:'%Y-%m-%d' >= $categoryProduct.reduction_from))}
{l s='Price lowered!'} {convertPrice price=$categoryProduct.price_without_reduction}

         {/if}
         {if ($categoryProduct.quantity > 0)}

{if $categoryProduct.quantity == 0}{if $allow_oosp}{$categoryProduct.available_later}{else}{/if}{else}{$categoryProduct.available_now}{/if}{else}             0}{elseif $categoryProduct.allow_oosp}{l s=$categoryProduct.available_later} style="display:none;"{/if}>
{l s='Out of stock'}              
{if $categoryProduct.quantity > 0}{elseif $categoryProduct.allow_oosp}{l s=$categoryProduct.available_later}{/if}

        {/if}

getProductLink($categoryProduct.id_product, $categoryProduct.link_rewrite, $categoryProduct.category)}" title="{$categoryProduct.name|htmlspecialchars}">
getImageLink($categoryProduct.link_rewrite, $categoryProduct.id_image, 'large')}" alt="{$categoryProduct.name|htmlspecialchars}" />

getProductLink($categoryProduct.id_product, $categoryProduct.link_rewrite, $categoryProduct.category, $categoryProduct.ean13)}" title="{$categoryProduct.name|htmlspecialchars}">{$categoryProduct.name|truncate:25:'...'|escape:'htmlall':'UTF-8'}


getProductLink($categoryProduct.id_product, $categoryProduct.link_rewrite, $categoryProduct.category)}" title="{$categoryProduct.name|htmlspecialchars}" title="{l s='More' mod='productscategory'}">{$categoryProduct.description_short|strip_tags|truncate:140s:'...'}


{displayWtPrice p=$categoryProduct.price}
getProductLink($categoryProduct.id_product, $categoryProduct.link_rewrite, $categoryProduct.category)}" title="{$categoryProduct.name|htmlspecialchars}" title="{l s='View' mod='productscategory'}">{l s='View' mod='productscategory'}


       {/foreach}


{/if}

Share this post


Link to post
Share on other sites

  • 1 month later...

Pour limiter le nombre de produits à afficher dans le module "Dans la même catégorie", c'est très simple :

Editer le fichier "productscategory.php" qui se trouve dans "/modules/productscategory".

Modifier comme suit :
ligne 51 :

$sizeOfCategoryProducts = $category->getProducts(intval($cookie->id_lang), 1, 30, NULL, NULL, true);


par

$sizeOfCategoryProducts = $category->getProducts(intval($cookie->id_lang), 1, 5, NULL, NULL, true);



ligne 85 :

if ($sizeOfCategoryProducts > 30)
{
$categoryProducts = array_slice($categoryProducts, $middlePosition - 15, 30, true);
$middlePosition = 15;


par

if ($sizeOfCategoryProducts > 5)
{
$categoryProducts = array_slice($categoryProducts, $middlePosition - 3, 5, true);
$middlePosition = 3;



Ici le nombre de produits sera limité à 5

  • Like 1

Share this post


Link to post
Share on other sites

  • 4 years later...
  • 1 month later...

Pourriez vous actualiser votre réponse pour prestashop 1.6 ? :) merci

 

à la ligne 

$category_products = $category->getProducts($this->context->language->id, 1, 100); /* 100 products max. */

Remplacer la valeur 100 par ce que désiré :)

Share this post


Link to post
Share on other sites

  • 3 years later...

Vieux topic déterré mais ça peut servir. Sur 1.7, c'est simplissime. C'est toujours dans le même fichier mais il y a une valeur à modifier dans une (). Et un commentaire à côté explique le nombre à mettre pour afficher x produits.

Share this post


Link to post
Share on other sites

  • 2 years later...

Bonjour,

J'ai le même problème avec prestashop 1.7.

J'ai l'impression que cela dégrade les temps de réponse de certaines pages de mon site car certaines catégories comprennent beaucoup d'article.

 exemple ici : https://sowaxtendance.fr/kimono-wax/23-kimono-wax-simi-en-tissu-africain-.html

Je ne vois pas comment adapter le fichier productscategory.php pour limiter à 5 articles par exemple.

Est ce possible d'effectuer cette modification dans le back office sans toucher aux fichiers ?

Par avance, merci de votre aide.

Share this post


Link to post
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
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More