Jump to content

[Résolu]Afficher les catégories avec stock - bloc catégorie


Recommended Posts

Bonsoir Val,

 

Il faut modifier une ligne dans le fichier modules/blockcategories/blockcategories.php : Dans la fonction hookLeftColumn (vers les lignes 176 - 177 si on a la même version :) ), il faut ajouter la ligne supplémentaire :

INNER JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = c.`id_category`).

 

Et ce bloc ressemblera maintenant à

 

 

SELECT c.id_parent, c.id_category, cl.name, cl.description, cl.link_rewrite

FROM `'._DB_PREFIX_.'category` c

LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category` AND `id_lang` = '.$id_lang.')

LEFT JOIN `'._DB_PREFIX_.'category_group` cg ON (cg.`id_category` = c.`id_category`)

INNER JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = c.`id_category`)

WHERE (c.`active` = 1 OR c.`id_category` = 1)

'.((int)($maxdepth) != 0 ? ' AND `level_depth` <= '.(int)($maxdepth) : '').'

AND cg.`id_group` IN ('.pSQL($groups).')

GROUP BY id_category

ORDER BY `level_depth` ASC, '.(Configuration::get('BLOCK_CATEG_SORT') ? 'cl.`name`' : 'c.`position`').' '.(Configuration::get('BLOCK_CATEG_SORT_WAY') ? 'DESC' : 'ASC'))

 

Je reste disponible.

 

Cordialement,

  • Like 1
Link to comment
Share on other sites

Bonjour,

 

merci pour cette réponse, mais j'ai un code très ressemblant mais sans la ligne principale le iNNER JOINT...

 

voici ce que j'ai trouvé dans le code du php de bloc category dans la partie hookleftcolumn :

 

Tools::enableCache();
 if (!$this->isCached('blockcategories_footer.tpl', $smartyCacheId))
 {
  $maxdepth = Configuration::get('BLOCK_CATEG_MAX_DEPTH');
  if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
SELECT c.id_parent, c.id_category, cl.name, cl.description, cl.link_rewrite
FROM `'._DB_PREFIX_.'category` c
LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category` AND `id_lang` = '.$id_lang.')
LEFT JOIN `'._DB_PREFIX_.'category_group` cg ON (cg.`id_category` = c.`id_category`)
WHERE (c.`active` = 1 OR c.`id_category` = 1)
'.((int)($maxdepth) != 0 ? ' AND `level_depth` <= '.(int)($maxdepth) : '').'
AND cg.`id_group` IN ('.pSQL($groups).')
ORDER BY `level_depth` ASC, '.(Configuration::get('BLOCK_CATEG_SORT') ? 'cl.`name`' : 'c.`position`').' '.(Configuration::get('BLOCK_CATEG_SORT_WAY') ? 'DESC' : 'ASC'))
  )

 

Mais c'est dans ! this->isCached

 

Qu'est ce que je dois faire ?

 

merci d'avance pour vos explications !

Link to comment
Share on other sites

Bonjour,

 

Si tu m'as bien lu, la ligne du INNER JOIN est à ajouter (et c'est ca qui constitue la solution à ton problème). Je n'ai d'ailleurs mis en gras dans mon post :)

 

J'ai copié tout un bloc juste pour que vous vous retrouviez.

 

Cordialement,

Link to comment
Share on other sites

Pff, effectivement il faut que j’arrête de lire en diagonale car c'était bien expliqué !!

 

Par contre lorsque je met cette ligne le menu ne s'affiche plus du tout !!!

 

Je ne sais pas si c'est à cause de l'organisation de mes catégories : Accueil > catégorie > sous catégorie...

 

??

Link to comment
Share on other sites

non, je n'ai pas de préprod.

 

Je veux dire que mon premier niveau est home ( id_categoriy=1 - id_parent=0) en dessous j'ai des catégories (id_categorie = 2,3,4... - id_parent=1) et ensuite des sous catégories (id_categorie = 5,6,7... - id_parent=2,3,4).

 

Un produit chez moi est forcement dans une catégorie et dans une sous catégorie.

Link to comment
Share on other sites

Pour ceux que ça intéresse, si le code ne fonctionnait pas c'était à cause de mon insertion des catégories.

 

Dans la table category_product j'avais toutes les 'position' à 0 en pensant que ça ne me servait pas...

Link to comment
Share on other sites

  • 9 months later...

Bonjour à vous qui maitrisez Prestashop!

Je cherche à n'afficher que les sous catégories de la catégorie sélectionnée dans le bloc categorie ! Est ce que vous auriez une idée ?

 

Merci pour votre aide

 

zef

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