val123 Posted May 31, 2012 Share Posted May 31, 2012 (edited) Bonjour à Tous, Je cherche (désespérément) à n'afficher dans le bloc catégorie que les sous-catégorie qui ont des stock. Savez-vous comment je peux le faire ? Merci d'avance pour vos réponses ! Edited June 4, 2012 by val123 (see edit history) Link to comment Share on other sites More sharing options...
devprestacom Posted May 31, 2012 Share Posted May 31, 2012 Bonjour, Réponse en MP Cordialement, Link to comment Share on other sites More sharing options...
Carl Favre Posted May 31, 2012 Share Posted May 31, 2012 Bonjour développement prestashop, C'est gentil à toi d'aider val123 mais ça serait encore mieux si tu postais la réponse sur le forum afin que tout le monde puisse en profiter . Link to comment Share on other sites More sharing options...
val123 Posted May 31, 2012 Author Share Posted May 31, 2012 Je ne pas vraiment eu d'aide ! (proposition d'une agence)! Je n'ai pas encore trouvé la solution!! Link to comment Share on other sites More sharing options...
devprestacom Posted May 31, 2012 Share Posted May 31, 2012 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, 1 Link to comment Share on other sites More sharing options...
val123 Posted June 1, 2012 Author Share Posted June 1, 2012 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 More sharing options...
devprestacom Posted June 1, 2012 Share Posted June 1, 2012 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 More sharing options...
val123 Posted June 4, 2012 Author Share Posted June 4, 2012 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 More sharing options...
devprestacom Posted June 4, 2012 Share Posted June 4, 2012 Bonjour, Je ne vous comprends pas bien. Avez-vous un préprod? là je verrai moi même la disposition et tout le reste. Cordialement, Link to comment Share on other sites More sharing options...
val123 Posted June 4, 2012 Author Share Posted June 4, 2012 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 More sharing options...
val123 Posted June 4, 2012 Author Share Posted June 4, 2012 J'ai installé un prestashop vide et votre code fonctionne parfaitement ! ça viens donc de modification de ma part ! Je vous remercie pour vos réponses (et votre patience) !! Link to comment Share on other sites More sharing options...
Dev On Web Posted June 4, 2012 Share Posted June 4, 2012 Vous pouvez donc passer votre sujet en résolu en éditant votre premier post en mode "édition avancée" Link to comment Share on other sites More sharing options...
val123 Posted June 4, 2012 Author Share Posted June 4, 2012 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 More sharing options...
devprestacom Posted June 4, 2012 Share Posted June 4, 2012 De rien Val, C'était un plaisir de vous aider Link to comment Share on other sites More sharing options...
zef72 Posted March 19, 2013 Share Posted March 19, 2013 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now