Aide - Recherche - Membres - Calendrier
Version complète : Les images des sous-catégories ne s'affichent pas
Forum osCommerce-fr > Les Bases d'OsCommerce MS2 > Fonctionnement
julia09
Bonjour,

Voilà j'ai un petit soucis pour une seule de mes catégories, à savoir c'est la seule qui soit comme ca : catégorie/sous-catégories/sous_sous-catégories/produits.
Les autres sont comme ca : catégorie/sous-catégories/produits.

Et en fait dans ma catégorie qui a un échelon en plus, les images du bloc "nouveau produits pour mai" ne s'affichent pas, alors que le bandeau avec le titre de cette box est bien là !!!
Et après quand je clique sur une des sous-catégories j'ai bien le bloc entier.... voir . Comme vous le voyez j'ai bien mon titre, qui est "à la une" pour moi...

Ma question : est-ce parce que j'ai un échelon de plus que le bloc ne s'affiche pas correctement (mais c'est bizarre car il s'affiche en partie car il y a bien le titre!) ??

Comment faire pour que mon bloc apparaisse en entier ??
Merci
NoZic
Bonjour,

Citation
est-ce parce que j'ai un échelon de plus que le bloc ne s'affiche pas correctement ... ??
Oui

Tout est normal dans ton comportement.

C'est le module des nouveaux produits qui ne cherche pas les produits dans les sous-sous-catégories mais au plus loin dans les sous-catégories.

Trop compliqué à poser par écrit pourquoi le titre s'affiche tout de même, il faut que tu décortiques le code, si ça t'intéresse...

Bon courage
julia09
Salut,

C'est donc le fichier catalog/includes/modules/new_products.php qui "pose" problème ??
Voilà le code de ce fichier :
Code
<?php
   $info_box_contents = array();
   $info_box_contents[] = array('text' => sprintf(TABLE_HEADING_NEW_PRODUCTS, strftime('%B')));

   new contentBoxHeading($info_box_contents);

   if ( (!isset($new_products_category_id)) || ($new_products_category_id == '0') ) {
     $new_products_query = tep_db_query("select p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where products_status = '1' order by p.products_date_added desc limit " . MAX_DISPLAY_NEW_PRODUCTS);
   } else {
     $new_products_query = tep_db_query("select distinct p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c where p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and c.parent_id = '" . (int)$new_products_category_id . "' and p.products_status = '1' order by p.products_date_added desc limit " . MAX_DISPLAY_NEW_PRODUCTS);
   }

   $row = 0;
   $col = 0;
   $info_box_contents = array();
   while ($new_products = tep_db_fetch_array($new_products_query)) {
     $new_products['products_name'] = tep_get_products_name($new_products['products_id']);
     $info_box_contents[$row][$col] = array('align' => 'center',
                                            'params' => 'class="smallText" width="33%" valign="top"',
                                            'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $new_products['products_image'], $new_products['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>
<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '">' . $new_products['products_name'] . '</a>
' . $currencies->display_price($new_products['products_price'], tep_get_tax_rate($new_products['products_tax_class_id'])));

     $col ++;
     if ($col > 2) {
       $col = 0;
       $row ++;
     }
   }

   new contentBox($info_box_contents);
?>


C'est à quel niveau qu'il faudrait modifier/rajouter qqch ??

Merci
NoZic
Bonjour,

C'est bien ce fichier.

Il ne faut pas "que" modifier une partie mais créer une fonction redondante qui va chercher les produits dans les catégories enfantes de la catégorie concernée tant qu'il y a des catégories enfantes (donc tant que l'on trouve des catégories qui ont comme parent_id celui de la catrégorie testée).

Cette fonction redondante doit forcément être appelée dans une partie de code testant si l'id de la catégorie pour chercher les produits existe donc pour ton code :
Code
  if ( (!isset($new_products_category_id)) || ($new_products_category_id == '0') ) {
    .... // donc le code défaut si pas de catégorie
  } else {
    // c'est cette partie de code que tu dois remplacer par la fonction redondante que tu as créée + créer l'affichage que tu appeles plus bas à la place du fetch_array de la requête, toujours bien entendu en testant si l'id de la catégorie existe (auquel cas on affiche juste l'affichage créé ici) ou pas (auquel cas on fait le fetch_array de la requête).
  }


Bon courage
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2013 Invision Power Services, Inc.