brikobike Posted December 1, 2014 Share Posted December 1, 2014 (edited) Bonjour, j'ai installé le module "Menu DV" édité par DDLX, ce module qui est un menu déroulant vertical fonctionne trés bien mais les catégories sont rangées par defaut par ordre alphabetique alors que je souhaiterais qu'il tienne compte de l'ordre imposé dans les catégories de prestashop, savez vous quelle est la manip a effectuer parce que aprés avoir cherché un bon moment avec mes trés faible connaissance en CSS je cale merci d'avance pour votre aide. Edited June 4, 2016 by brikobike (see edit history) Link to comment Share on other sites More sharing options...
Alexandre Carette Posted December 2, 2014 Share Posted December 2, 2014 Bonjour a mon avis il faut modifier les fichiers php du module Link to comment Share on other sites More sharing options...
brikobike Posted December 2, 2014 Author Share Posted December 2, 2014 Bonjour, je vous remercie pour cet indice, j'ai fait quelques tests sur le fichier PHP du module mais je n'arrive a rien <?php class ddlx_menu_dv extends Module { public function __construct() { $this->name = 'ddlx_menu_dv'; $this->tab = 'DDLX modules'; $this->version = "1.0"; $this->author = 'DDLX multimédia'; $this->bootstrap = true; parent::__construct(); $this->displayName = $this->l('Menu DV'); $this->description = $this->l('Add a menu in your site'); $this->confirmUninstall = $this->l('Are you sure you want to uninstall this module ?'); } function install() { if ( ! parent::install() || ! $this->registerHook('leftColumn') || ! Configuration::updateValue('BLOCK_CATEGMDI_MAX_DEPTH', 4) ) { return false; } return true; } public function getContent() { $output = '<h2>' . $this->displayName . '</h2>'; if ( Tools::isSubmit('submitBlockCategories') ) { $maxDepth = intval(Tools::getValue('maxDepth')); if ( $maxDepth <= 0 ) { $output .= '<div class="alert error">' . $this->l('Maximum depth: Invalid number.') . '</div>'; } else { Configuration::updateValue('BLOCK_CATEGMDI_MAX_DEPTH', intval($maxDepth)); $output .= '<div class="conf confirm"><img src="../img/admin/ok.gif" alt="' . $this->l('Confirmation') . '" />' . $this->l('Settings updated') . '</div>'; } } return $output . $this->displayForm(); } public function displayForm() { return ' <form action="' . $_SERVER ['REQUEST_URI'] . '" method="post"> <fieldset> <legend><img src="' . $this->_path . 'logo.gif" alt="" title="" />' . $this->l('Settings') . '</legend> <label>' . $this->l('Maximum depth') . '</label> <div class="margin-form"> <input type="text" name="maxDepth" value="' . Configuration::get('BLOCK_CATEGMDI_MAX_DEPTH') . '" /> <p class="clear">' . $this->l('Set the maximum depth of sublevels displayed in this block') . '</p> </div> <center><input type="submit" name="submitBlockCategories" value="' . $this->l('Save') . '" class="button" /></center> </fieldset> </form>'; } public function hookLeftColumn( $params ) { // Num�ro d'identification des sous menu // $ID_ddsubmenuside = 0; // ///////////////////////////////////////// global $smarty; /* ONLY FOR THEME OLDER THAN v1.0 */ global $link; $smarty->assign(array ( 'categories' => Category::getHomeCategories(intval($params ['cookie']->id_lang), true), 'link' => $link )); /* ELSE */ $req_cat = ' SELECT * FROM ' . _DB_PREFIX_ . 'category c LEFT JOIN ' . _DB_PREFIX_ . 'category_lang cl ON (c.id_category = cl.id_category AND id_lang = ' . intval($params ['cookie']->id_lang) . ') WHERE c.active = 1 AND c.level_depth=2 ORDER BY level_depth, cl.name ASC'; // LECTURE DES CATEGORIES $result = Db::getInstance()->ExecuteS($req_cat); // Si aucune cat�gorie de trouv� if ( count($result) == 0 ) { $smarty->assign('lignes_menu_parent', '<li>*** VIDE ***</li>'); $smarty->assign('lignes_sous_categories', ''); return $this->display(__FILE__, $this->name . '.tpl'); } $lignes_menu_parent = ''; $SousCategories = ''; // Sinon on lit les catégories, sous-cat�gories, etc ... foreach ( $result as $categorie_parent ) { $NbSousCat = $this->NbSousCategories($categorie_parent ['id_category']); // Ajout de la cat�gorie $lignes_menu_parent .= '<li><a href="index.php?id_category=' . $categorie_parent ['id_category'] . '&controller=category"'; // Si il y a des sous cat�gories, on attribue un code de liaison if ( $NbSousCat > '0' ) { $ID_ddsubmenuside = ( $ID_ddsubmenuside + 1 ); $lignes_menu_parent = $lignes_menu_parent . ' rel="ddsubmenuside' . $ID_ddsubmenuside . '"'; } // On termine la ligne en cours $lignes_menu_parent = $lignes_menu_parent . '>' . $categorie_parent ['name'] . '</a></li>'; // Si il y a des sous cat�gories, on lit la suite if ( $NbSousCat > '0' ) { $SousCategories .= $this->recupSousCategories($categorie_parent ['id_category'], '1', $ID_ddsubmenuside, intval($params ['cookie']->id_lang)); } } // On copie les lignes dans le template $smarty->assign('lignes_menu_parent', $lignes_menu_parent); $smarty->assign('lignes_sous_categories', $SousCategories); return $this->display(__FILE__, $this->name . '.tpl'); } public function hookRightColumn( $params ) { return $this->hookLeftColumn($params); } function recupSousCategories( $id_parent, $mode, $id_sub, $idlang ) { // $mode=1 si c'est le 1er niveau de sous cat�gorie, sinon $mode=2 // requ�te � executer $sql = 'SELECT c.id_category, cl.name FROM ' . _DB_PREFIX_ . 'category c LEFT JOIN ' . _DB_PREFIX_ . 'category_lang cl ON (c.id_category = cl.id_category AND id_lang = ' . $idlang . ') WHERE c.active = 1 AND c.id_parent = ' . $id_parent . ' AND level_depth <= ' . Configuration::get('BLOCK_CATEGMDI_MAX_DEPTH') . ' ORDER BY level_depth, cl.name ASC'; // Ex�cution de la requ�te $resultat = Db::getInstance()->ExecuteS($sql); $LignesSousCat = ''; // TODO Si la requ�te est vide on renvoit vide if ( count($resultat) == 0 ) { return ''; } // Pr�paration du texte if ( $mode == '1' ) { $LignesSousCat .= '<ul id="ddsubmenuside' . $id_sub . '" class="ddsubmenustyle blackwhite">'; } else { $LignesSousCat .= '<ul>'; } // d($resultat); //FEMME TATA // Sinon lecture des sous cat�gories et mise en place foreach ( $resultat as $res ) { // Lecture du nombre de sous cat�gories $NbSousCat = $this->NbSousCategories($res ['id_category']); // index.php?id_category=' . $categorie_parent ['id_category'] . '&controller=category"'; $chaine = '<li><a href="index.php?id_category=%d&controller=category">%s</a>'; $LignesSousCat .= sprintf($chaine, $res ['id_category'], $res ['name']); // Si il y a encore un niveau inf�rieur dans le menu if ( $NbSousCat > 0 ) { $LignesSousCat .= $this->recupSousCategories($res ['id_category'], '2', '', $idlang); } // On ferme la ligne $LignesSousCat .= '</li>'; } $LignesSousCat .= '</ul>'; return $LignesSousCat; } function NbSousCategories( $id_parent ) { global $Depth_max; $sql = 'SELECT count(*) as Nombre FROM ' . _DB_PREFIX_ . 'category c WHERE c.active = 1 AND c.id_parent = ' . $id_parent . ' AND c.level_depth <= ' . Configuration::get('BLOCK_CATEGMDI_MAX_DEPTH'); $resultat = Db::getInstance()->ExecuteS($sql); return $resultat [0] ['Nombre']; } } ?> Link to comment Share on other sites More sharing options...
Alexandre Carette Posted December 2, 2014 Share Posted December 2, 2014 (edited) $req_cat = ' SELECT * FROM ' . _DB_PREFIX_ . 'category c LEFT JOIN ' . _DB_PREFIX_ . 'category_lang cl ON (c.id_category = cl.id_category AND id_lang = ' . intval($params ['cookie']->id_lang) . ') WHERE c.active = 1 AND c.level_depth=2 ORDER BY level_depth, cl.name ASC'; c' est dans ce morceau de code qu'il récupère le nom de la catégorie dans la base de donnée et qu'il le classe par ordre alphabétique, il faudrait modifier ce code Edited December 2, 2014 by Alexandre-KM (see edit history) Link to comment Share on other sites More sharing options...
brikobike Posted December 3, 2014 Author Share Posted December 3, 2014 Merci, j'ai essayé quelques trucs mais je ne comprend rien a ce que je fait , je test differentes possibilité en ajustant par élimination mais je n'y parviens pas, si quelqu'un d'un peu calé en code pouvait m'aider ce serait trés gentil. merci Link to comment Share on other sites More sharing options...
Ghost77 Posted December 5, 2014 Share Posted December 5, 2014 Salut, Je suis nouveau et me permet de vous demander comment marche ce module que je viens d'installer et ajouter aux modules.Quand je veux pour le configurer il n'y a juste "Maximum depth 4 Set the maximum depth of sublevels displayed in this block".Ce que je cherche en définitif c'est d'avoir un menu vertical déroulant dans une catégorie.Pour le moment mes sous menu sont à l'horizontal.Ce qui rend le site pas terrible.Merci de votre aide Link to comment Share on other sites More sharing options...
brikobike Posted December 5, 2014 Author Share Posted December 5, 2014 (edited) Bonjour Ghost77, je ne comprend pas ce que tu veux dire, as tu le lien de ton site pour voir ce qui cloche, il faudrait aussi que tu précise quelle version de prestashop tu utilises. Normalement une fois le module installé, il faut que tu desactive le menu d'origine de prestashop pour ne pas créer de problème entre les deux, puis tes catégories devraient etre apparentes avec tes sous catégories et deroulant lateral comme sur mon site perso, le problème c'est que toutes les catégories apparaissent par ordre alphabetique et je n'ai pas trouvé comment les remettre dans l'ordre de presta Edited December 5, 2014 by brikobike (see edit history) 1 Link to comment Share on other sites More sharing options...
Ghost77 Posted December 6, 2014 Share Posted December 6, 2014 Bonjour Ghost77, je ne comprend pas ce que tu veux dire, as tu le lien de ton site pour voir ce qui cloche, il faudrait aussi que tu précise quelle version de prestashop tu utilises. Normalement une fois le module installé, il faut que tu desactive le menu d'origine de prestashop pour ne pas créer de problème entre les deux, puis tes catégories devraient etre apparentes avec tes sous catégories et deroulant lateral comme sur mon site perso, le problème c'est que toutes les catégories apparaissent par ordre alphabetique et je n'ai pas trouvé comment les remettre dans l'ordre de presta Je travail directement par la console admin.Dans la catégorie module j'ai ajouté mais rien à configurer ! Faut il installer quelque chose en + ? Link to comment Share on other sites More sharing options...
brikobike Posted December 16, 2014 Author Share Posted December 16, 2014 UP personne pour m'aider ?? Link to comment Share on other sites More sharing options...
Ghost77 Posted December 16, 2014 Share Posted December 16, 2014 UP personne pour m'aider ?? Je voudrais que mes sous menu soient à la verticale et non à l'horizontal Mon site: http://ouest-unlock.com/ Link to comment Share on other sites More sharing options...
brikobike Posted December 17, 2014 Author Share Posted December 17, 2014 Je voudrais que mes sous menu soient à la verticale et non à l'horizontal Mon site: http://ouest-unlock.com/ Je pense que tu utilise un autre module mais pas Menu DV qui est specifique pour un menu vertical, le tiens est horizontal, tu devrais ouvrir un autre post pour avoir des reponses a ton problème en etant certain d'utiliser le bon module et non pas celui d'origine prestashop Link to comment Share on other sites More sharing options...
Fab20620 Posted December 17, 2014 Share Posted December 17, 2014 $req_cat = ' SELECT * FROM ' . _DB_PREFIX_ . 'category c LEFT JOIN ' . _DB_PREFIX_ . 'category_lang cl ON (c.id_category = cl.id_category AND id_lang = ' . intval($params ['cookie']->id_lang) . ') WHERE c.active = 1 AND c.level_depth=2 ORDER BY level_depth, cl.name ASC'; c' est dans ce morceau de code qu'il récupère le nom de la catégorie dans la base de donnée et qu'il le classe par ordre alphabétique, il faudrait modifier ce code C'est la commande ORDER BY qui classe les données récupérées par niveau de profondeur et cl.name (est-ce là le nom des catégories ?) par ordre croissant (ASCendant.) Tu peux tester sans cl.name pour voir si ça solutionne ton problème. Link to comment Share on other sites More sharing options...
brikobike Posted December 17, 2014 Author Share Posted December 17, 2014 C'est la commande ORDER BY qui classe les données récupérées par niveau de profondeur et cl.name (est-ce là le nom des catégories ?) par ordre croissant (ASCendant.) Tu peux tester sans cl.name pour voir si ça solutionne ton problème. Merci beaucoup , effectivement ça ce passe bien là, j'ai réussi a afficher mon menu dans l'ordre des numéros ID prestashop en supprimant par 2 fois la commande "cl.name ASC" mais parcontre en réorganisant mon menu dans prestashop (avec les petites fléches noires) le menu ne bouge pas malgré le vidage du cache du navigateur . Link to comment Share on other sites More sharing options...
Fab20620 Posted December 17, 2014 Share Posted December 17, 2014 (edited) En enlevant totalement le ORDER BY ça donne quoi (sans oublier de remettre le point virgule à la ligne au dessus pour ne pas avoir droit à une petite erreur.) Le premier SELECT traite les catégories principales, le second quant à lui s'occupe des sous-catégories. Ton site est très sympa, bravo. Edited December 17, 2014 by Fab20620 (see edit history) Link to comment Share on other sites More sharing options...
brikobike Posted December 17, 2014 Author Share Posted December 17, 2014 (edited) Merci pour les compliments j'ai essayé de retirer ORDER BY comme ceci mais mon site ne s'affiche plus $req_cat = ' SELECT * FROM ' . _DB_PREFIX_ . 'category c LEFT JOIN ' . _DB_PREFIX_ . 'category_lang cl ON (c.id_category = cl.id_category AND id_lang = ' . intval($params ['cookie']->id_lang) . ') WHERE c.active = 1 AND c.level_depth=2; Edited December 17, 2014 by brikobike (see edit history) Link to comment Share on other sites More sharing options...
brikobike Posted December 17, 2014 Author Share Posted December 17, 2014 Pour te donner une idée de ce que je veux faire, j'ai fait une capture de mon menu "Categorie", il faudrait qu'elles s'affichent dans le même ordre sur le site et non pas par les ID Link to comment Share on other sites More sharing options...
Fab20620 Posted December 17, 2014 Share Posted December 17, 2014 (edited) Dans le menu de navigation dédié aux mobiles, ça s'affiche effectivement dans cet ordre là. Il faut essayer de remettre un ORDER BY comme ci-après : ORDER BY position ASC; Attention, dans les deux requêtes SQL, il y a une quote avant la virgule juste après le ASC s, peut être qu'en enlevant le ORDER BY cl_name ASC tu l'as virée avec (ce qui aurait pour résultat que ça ne fonctionne plus correctement dans la mesure où cette quote ferme une expression php) Configuration::get('BLOCK_CATEGMDI_MAX_DEPTH') . ' ORDER BY level_depth, cl.name ASC'; Edited December 17, 2014 by Fab20620 (see edit history) Link to comment Share on other sites More sharing options...
brikobike Posted December 18, 2014 Author Share Posted December 18, 2014 T'es un CHEF, c'est bien la ligne que tu m'as indiqué, j'ai juste rajouter une quote comme tu me l'a suggeré et tout est OK. Bravo a toi pour tes connaissances et ta serviabilité Link to comment Share on other sites More sharing options...
Ghost77 Posted December 31, 2014 Share Posted December 31, 2014 Je pense que tu utilise un autre module mais pas Menu DV qui est specifique pour un menu vertical, le tiens est horizontal, tu devrais ouvrir un autre post pour avoir des reponses a ton problème en etant certain d'utiliser le bon module et non pas celui d'origine prestashop J'ai pourtant desactivé le module d'origine de la console.Du coup toutes mes catégories ont disparues.Malgré l'installation du module menu DV.Mes catégories restent invisibles ! Un petit tuto serait le bienvenu svp concernant l'importation de ce module entre autre afin d'y voir plus clair,merci. Link to comment Share on other sites More sharing options...
webadherhone Posted March 5, 2015 Share Posted March 5, 2015 Bonjour, est il possible d'avoir "ce menu DV" vertical sur toutes les pages y compris la page d'accueil ? Il ne se greffe qu'en leftcolumn or celle ci n'est pas dans la page d'accueil... J'ai un peu cherché dans le php mais n'aie pas réussi à le modifier correctement pour pouvoir le greffer en Topcolumn. Link to comment Share on other sites More sharing options...
brikobike Posted June 3, 2016 Author Share Posted June 3, 2016 Je reviens une nouvelle fois vers vous car le problème est toujours présent suite a la création de nouvelles catégories, elles ne se rangent ni par ID ni par ordre alphabetique !!!, pas vraiment de logique et j'avoue que je m'y perd, votre aide me serait d'un grand secours Mon menu tel que je voudrais qu'il apparaisse sur le site. Et le menu tel qu'il apparait , ni le N° ID ni un quelconque ordre logique, j'ai vidé mon cache mais rien ne change. Le fichier .PHP du module "DDLX" dans sa totalité pour vous permettre d'y voir plus clair. <?php class ddlx_menu_dv extends Module { public function __construct() { $this->name = 'ddlx_menu_dv'; $this->tab = 'DDLX modules'; $this->version = "1.0"; $this->author = 'DDLX multimédia'; $this->bootstrap = true; parent::__construct(); $this->displayName = $this->l('Menu DV'); $this->description = $this->l('Add a menu in your site'); $this->confirmUninstall = $this->l('Are you sure you want to uninstall this module ?'); } function install() { if ( ! parent::install() || ! $this->registerHook('leftColumn') || ! Configuration::updateValue('BLOCK_CATEGMDI_MAX_DEPTH', 4) ) { return false; } return true; } public function getContent() { $output = '<h2>' . $this->displayName . '</h2>'; if ( Tools::isSubmit('submitBlockCategories') ) { $maxDepth = intval(Tools::getValue('maxDepth')); if ( $maxDepth <= 0 ) { $output .= '<div class="alert error">' . $this->l('Maximum depth: Invalid number.') . '</div>'; } else { Configuration::updateValue('BLOCK_CATEGMDI_MAX_DEPTH', intval($maxDepth)); $output .= '<div class="conf confirm"><img src="../img/admin/ok.gif" alt="' . $this->l('Confirmation') . '" />' . $this->l('Settings updated') . '</div>'; } } return $output . $this->displayForm(); } public function displayForm() { return ' <form action="' . $_SERVER ['REQUEST_URI'] . '" method="post"> <fieldset> <legend><img src="' . $this->_path . 'logo.gif" alt="" title="" />' . $this->l('Settings') . '</legend> <label>' . $this->l('Maximum depth') . '</label> <div class="margin-form"> <input type="text" name="maxDepth" value="' . Configuration::get('BLOCK_CATEGMDI_MAX_DEPTH') . '" /> <p class="clear">' . $this->l('Set the maximum depth of sublevels displayed in this block') . '</p> </div> <center><input type="submit" name="submitBlockCategories" value="' . $this->l('Save') . '" class="button" /></center> </fieldset> </form>'; } public function hookLeftColumn( $params ) { // Num�ro d'identification des sous menu // $ID_ddsubmenuside = 0; // ///////////////////////////////////////// global $smarty; /* ONLY FOR THEME OLDER THAN v1.0 */ global $link; $smarty->assign(array ( 'categories' => Category::getHomeCategories(intval($params ['cookie']->id_lang), true), 'link' => $link )); /* ELSE */ $req_cat = ' SELECT * FROM ' . _DB_PREFIX_ . 'category c LEFT JOIN ' . _DB_PREFIX_ . 'category_lang cl ON (c.id_category = cl.id_category AND id_lang = ' . intval($params ['cookie']->id_lang) . ') WHERE c.active = 1 AND c.level_depth=2 ORDER BY position ASC'; // LECTURE DES CATEGORIES $result = Db::getInstance()->ExecuteS($req_cat); // Si aucune cat�gorie de trouv� if ( count($result) == 0 ) { $smarty->assign('lignes_menu_parent', '<li>*** VIDE ***</li>'); $smarty->assign('lignes_sous_categories', ''); return $this->display(__FILE__, $this->name . '.tpl'); } $lignes_menu_parent = ''; $SousCategories = ''; // Sinon on lit les catégories, sous-cat�gories, etc ... foreach ( $result as $categorie_parent ) { $NbSousCat = $this->NbSousCategories($categorie_parent ['id_category']); // Ajout de la cat�gorie $lignes_menu_parent .= '<li><a href="index.php?id_category=' . $categorie_parent ['id_category'] . '&controller=category"'; // Si il y a des sous cat�gories, on attribue un code de liaison if ( $NbSousCat > '0' ) { $ID_ddsubmenuside = ( $ID_ddsubmenuside + 1 ); $lignes_menu_parent = $lignes_menu_parent . ' rel="ddsubmenuside' . $ID_ddsubmenuside . '"'; } // On termine la ligne en cours $lignes_menu_parent = $lignes_menu_parent . '>' . $categorie_parent ['name'] . '</a></li>'; // Si il y a des sous cat�gories, on lit la suite if ( $NbSousCat > '0' ) { $SousCategories .= $this->recupSousCategories($categorie_parent ['id_category'], '1', $ID_ddsubmenuside, intval($params ['cookie']->id_lang)); } } // On copie les lignes dans le template $smarty->assign('lignes_menu_parent', $lignes_menu_parent); $smarty->assign('lignes_sous_categories', $SousCategories); return $this->display(__FILE__, $this->name . '.tpl'); } public function hookRightColumn( $params ) { return $this->hookLeftColumn($params); } function recupSousCategories( $id_parent, $mode, $id_sub, $idlang ) { // $mode=1 si c'est le 1er niveau de sous cat�gorie, sinon $mode=2 // requ�te � executer $sql = 'SELECT c.id_category, cl.name FROM ' . _DB_PREFIX_ . 'category c LEFT JOIN ' . _DB_PREFIX_ . 'category_lang cl ON (c.id_category = cl.id_category AND id_lang = ' . $idlang . ') WHERE c.active = 1 AND c.id_parent = ' . $id_parent . ' AND level_depth <= ' . Configuration::get('BLOCK_CATEGMDI_MAX_DEPTH') . ' ORDER BY position ASC '; // Ex�cution de la requ�te $resultat = Db::getInstance()->ExecuteS($sql); $LignesSousCat = ''; // TODO Si la requ�te est vide on renvoit vide if ( count($resultat) == 0 ) { return ''; } // Pr�paration du texte if ( $mode == '1' ) { $LignesSousCat .= '<ul id="ddsubmenuside' . $id_sub . '" class="ddsubmenustyle blackwhite">'; } else { $LignesSousCat .= '<ul>'; } // d($resultat); //FEMME TATA // Sinon lecture des sous cat�gories et mise en place foreach ( $resultat as $res ) { // Lecture du nombre de sous cat�gories $NbSousCat = $this->NbSousCategories($res ['id_category']); // index.php?id_category=' . $categorie_parent ['id_category'] . '&controller=category"'; $chaine = '<li><a href="index.php?id_category=%d&controller=category">%s</a>'; $LignesSousCat .= sprintf($chaine, $res ['id_category'], $res ['name']); // Si il y a encore un niveau inf�rieur dans le menu if ( $NbSousCat > 0 ) { $LignesSousCat .= $this->recupSousCategories($res ['id_category'], '2', '', $idlang); } // On ferme la ligne $LignesSousCat .= '</li>'; } $LignesSousCat .= '</ul>'; return $LignesSousCat; } function NbSousCategories( $id_parent ) { global $Depth_max; $sql = 'SELECT count(*) as Nombre FROM ' . _DB_PREFIX_ . 'category c WHERE c.active = 1 AND c.id_parent = ' . $id_parent . ' AND c.level_depth <= ' . Configuration::get('BLOCK_CATEGMDI_MAX_DEPTH'); $resultat = Db::getInstance()->ExecuteS($sql); return $resultat [0] ['Nombre']; } } ?> Un grand merci pour votre aide. Link to comment Share on other sites More sharing options...
Alexandre Carette Posted June 3, 2016 Share Posted June 3, 2016 (edited) bonjour, la logique serait que les categories se rangent dans l'ordre des positions ORDER BY position ASC'; cordialement Edited June 3, 2016 by Alex-Kodd (see edit history) Link to comment Share on other sites More sharing options...
Fab20620 Posted June 3, 2016 Share Posted June 3, 2016 (edited) J'avais suggéré une solution mais après analyse des tables cela n'aurait rien changé. Du coup je l'ai effacée et je reposterai une idée de solution si j'en vois une :-) Edited June 3, 2016 by Fab20620 (see edit history) Link to comment Share on other sites More sharing options...
brikobike Posted June 4, 2016 Author Share Posted June 4, 2016 bonjour, la logique serait que les categories se rangent dans l'ordre des positions ORDER BY position ASC'; cordialement Oui Alexandre, tu as raison, mais justement c'est ce que je ne comprend pas, je suis bien en ORDER BY position ASC'; et les catégories ne se rangent pas comme je le souhaite, alors que avec le menu d'origine prestashop l'ordre choisi fonctionne parfaitement, malheureusement il n'est pas déroulant Link to comment Share on other sites More sharing options...
Fab20620 Posted June 4, 2016 Share Posted June 4, 2016 Ce que je ne comprends pas c'est que visiblement ça marchait jusqu'à l'ajout de nouvelles catégories. Sont elles de même rang (pas en sous catégories je veux dire) ? Si ça fonctionne dans le menu prestashop, c'est déjà bon signe... Plus qu'à trouver pourquoi on n'a pas le même résultat et corriger en conséquence. Link to comment Share on other sites More sharing options...
Fab20620 Posted June 4, 2016 Share Posted June 4, 2016 Essaie de remplacer la dernière ligne de la requête par : ORDER by position+0'; Link to comment Share on other sites More sharing options...
brikobike Posted June 4, 2016 Author Share Posted June 4, 2016 (edited) Je vais tester ça desuite, et pour répondre a ton message précedent, les nouvelles catégories étaient en fait des sous catégories que j'ai passé en catégories principales. EDIT : j'ai testé la ligne ci dessus ORDER by position+0'; et cela ne change rien Edited June 4, 2016 by brikobike (see edit history) Link to comment Share on other sites More sharing options...
Fab20620 Posted June 4, 2016 Share Posted June 4, 2016 (edited) Ok, le coup des sous catégories devenues catégories est à explorer. Je pense qu'il y a une histoire de niveaux de catégories qui vient semer la pagaille. En regardant la fonction on voit qu'il y a 2 order by position, 1 pour les catégories et 1 pour les sous catégories. essaie de retirer celui qui est dans la fonction qui lit les sous catégories juste pour confirmer que ça change quelque chose. Sais tu aller dans phpmyadmin ? Si oui ce serait pas mal de vérifier le contenu de la table category afin de voir si les positions sont cohérentes et si toutes les catégories ont le même attribut level_depth Edit : j'ai lu aussi par ailleurs que sous Chrome les positions n'étaient pas sauvegardées correctement et que sous internet explorer ça marchait. A tester si tu travaille avec Chrome. Edited June 4, 2016 by Fab20620 (see edit history) Link to comment Share on other sites More sharing options...
brikobike Posted June 4, 2016 Author Share Posted June 4, 2016 Merci pour ton aide Fab, je viens d'allez jeter un oeil dans PHPadmin/ps_category et j'ai effectivement des doublons dans la colone "position" de ma base de donnée, je n'ose pas toucher par peur de faire un bétise, peux tu me donner ton avis, je pensais juste leur attribuer la bonne position, est ce que cela a un risque sur les annonces se trouvant dans ces catégories ? Link to comment Share on other sites More sharing options...
Fab20620 Posted June 4, 2016 Share Posted June 4, 2016 Voilà ce à quoi je pensais. Ce système de position semble poser problème à pas mal de monde, j'ai lu par ailleurs que les positions attribuées manuellement dans la table ne corrigent pas le problème car prestashop réécrit les position enregistrées dans l'interface d'administration. Ce serait ma boutique je ferai le test sur une catégorie. Par contre l'histoire du fonctionnement de la mémorisation de la position selon le navigateur est aussi à vérifier. Link to comment Share on other sites More sharing options...
Fab20620 Posted June 4, 2016 Share Posted June 4, 2016 Concernant le risque pour les annonces il n'y en a pas car le lien d'appartenance à la catégorie se fait sur l'id de cette dernière, le positionnement ne sert qu'à l'affichage des catégories elles même. Link to comment Share on other sites More sharing options...
brikobike Posted June 4, 2016 Author Share Posted June 4, 2016 J'ai pas eu la patience d'attendre, j'ai fait les changements et apparement cela fonctionne parfaitement, je suis en train de réatribuer les positions aux sous catégories qui etaient également mélangées et ça fonctionne aussi, merci pour ton aide précieuse, je n'aurais jamais osé tenter ça (y) Link to comment Share on other sites More sharing options...
Fab20620 Posted June 4, 2016 Share Posted June 4, 2016 Je suis content de savoir que ton problème est solutionné. Bonne continuation 1 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