Sous-menu permanent |
Bienvenue invité ( Connexion | Inscription )
Sous-menu permanent |
9 Mar 2012, 17:12
Message
#1
|
|
Ceinture blanche OSC Groupe : Membres Messages : 1 Inscrit : 9-March 12 Membre no 30694 |
Bonjour, j'ai modifié la boutique afin de voir apparaitre un sous menu pour chacune de mes catégories dans une nouvelle box. Ce menu s'adapte bien à chacune des catégories principales. Mais lorsque je clique sur un item du sous menu, celui ci disparait et je ne veux pas, j'aimerais qu'il reste permanent et ne disparaisse que lorsque je clique sur une nouvelle catégories. Le code de mon sous-menu utilisé est le suivant et n’apparait que lorsque je demande un sous-menu:
Merci de votre aide. if (isset($cPath) && strpos('_', $cPath)) { // check to see if there are deeper categories within the current category $category_links = array_reverse($cPath_array); for($i=0, $n=sizeof($category_links); $i<$n; $i++) { $categories_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "'"); $categories = tep_db_fetch_array($categories_query); if ($categories['total'] < 1) { // do nothing, go through the loop } else { $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name"); break; // we've found the deepest category the customer is in } } } else { $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$current_category_id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name"); } $number_of_categories = tep_db_num_rows($categories_query); $rows = 0; while ($categories = tep_db_fetch_array($categories_query)) { $rows++; $cPath_new = tep_get_path($categories['categories_id']); $width = (int)(100 / MAX_DISPLAY_CATEGORIES_PER_ROW) . '%'; echo ' <a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">' . $categories['categories_name'] . '</a>'.'</td>'." ". "\n"; if ((($rows / MAX_DISPLAY_CATEGORIES_PER_ROW) == floor($rows / MAX_DISPLAY_CATEGORIES_PER_ROW)) && ($rows != $number_of_categories)) { echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; } } // needed for the new products module shown below $new_products_category_id = $current_category_id; |
|
10 Mar 2012, 22:42
Message
#2
|
|
Ceinture blanche OSC Groupe : Membres Messages : 2 Inscrit : 9-March 12 Membre no 30693 |
Dominicou et moi avons regarder cela encore nous ne sommes pas des props mais en plaçant dans le header la fonction qui appelle la sous catégorie '' where c.parent_id = 39'' nous avons le bon menu, c-a-d le menu de la sous-catégorie qui reste permanent lorsque l'on regarde l'affichage de la liste des sous-produits.
Notre problème maintenant est que nous avons la première ligne qui est le menu horizontal des catégories principales et que si on a 5 catégories il faut insérer 5 liens différents en lui spécifiant DIR_WS_INCLUDES . la catégorie#3.php DIR_WS_INCLUDES . la catégorie#4.php DIR_WS_INCLUDES . la catégorie#5.php. etc. pour avoir le menu des sous-catégories principales correspondantes horizontale dans une boxe sous les catégories principales... Nous pensons que c'est du bidouillage et qu'il doit avoir un moyen moins compliqué ? Ce message a été modifié par jade7 - 10 Mar 2012, 23:34. |
|
16 Mar 2012, 16:48
Message
#3
|
|
Ceinture blanche+ OSC Groupe : Membres Messages : 27 Inscrit : 11-August 11 Membre no 30122 |
je n'ais pas tout compris mais perso j'affiche des sous menus comme ca :
Code <?php include "petitMenuMignon.php"; ?> petitMenuMignon.php: Code function petitMenuMignon($categorieParent) {
global $currencies; $hmtl = ""; $arr = array(); tep_get_subcategories($arr,$categorieParent); $categories = ""; if(sizeof($arr)) { $categories = implode(",", $arr); $categories .= ",$categorieParent"; } $arr = array(); // Recup des cat?gories $result = tep_db_query(" SELECT c.categories_id as ID, parent_id as Parent,categories_name as Nom FROM categories c, categories_description cd WHERE cd.categories_id=c.categories_id AND sort_order<>99 AND c.categories_id IN ($categories) order by parent_id,sort_order")or die("Erreur requete : : " . mysql_error());; $categories = array(); $p=0; while($row = tep_db_fetch_array($result)) { if($p==0){$html="<p>".$row['Nom']."</p>";$p++;} $categories[] = array( 'parent_id' => $row['Parent'], 'categorie_id' => $row['ID'], 'nom_categorie' => $row['Nom'] ); } $html .= afficheCategories($categorieParent,1,$categories,false); return $html; } function afficheCategories($parent, $niveau, $array, $avec2Colonnes=true) { $html = ""; $niveau_precedent = 1; $countNiveaux1=0; foreach ($array AS $noeud) { if ($parent == $noeud['parent_id']) { if ($niveau_precedent < $niveau) { $html .= "<ul>\n <li><a href='".tep_href_link(FILENAME_DEFAULT, 'cPath=' . $noeud['categorie_id'].'')."' class=\"sousMenuA\">" . replaceSpace($noeud['nom_categorie']) ."</a></li>\n"; } else{ if($niveau == 1){ if($countNiveaux1 == 3 && $avec2Colonnes) { $html .= "</div><div class=\"niveauColonne$parent\" >\n"; } if($countNiveaux1 == 0) { $html .= "<div class=\"niveauColonne$parent\" >\n"; } $html .= "<div class=\"titre1\"><a href='".tep_href_link(FILENAME_DEFAULT, 'cPath=' . $noeud['categorie_id'].'')."' class=\"sousMenuA\">" . replaceSpace($noeud['nom_categorie']) ."</a></div>\n"; $countNiveaux1++; } else{ $html .= " <li><a href='".tep_href_link(FILENAME_DEFAULT, 'cPath=' . $noeud['categorie_id'].'')."' class=\"sousMenuA\">" . replaceSpace($noeud['nom_categorie']) ."</a></li>\n"; } } $niveau_precedent = $niveau; $html .= afficheCategories($noeud['categorie_id'], ($niveau + 1), $array); } } if ($niveau_precedent == $niveau && $niveau != 0) $html .= "</ul>\n"; return $html; } |
|
28 Mar 2012, 16:18
Message
#4
|
|
Ceinture blanche OSC Groupe : Membres Messages : 2 Inscrit : 9-March 12 Membre no 30693 |
Merci mickaelguilbertxxx, j'ai essayé ton mignonpetitmenu mais cela na pas fonctionné chez moi ;-(
Notre problème est que j’appelle la sous-catagorie en cliquant sur la catégories principale. Chacun des menus apparait sur une ligne horizontale. 1e ligne les categories, 2e ligne les sous-categories. Les categories sont définie dans mon header. Lorsque je clique sur une sous-categorie ( la deuxième ligne) ce menu (la sous-categories) disparait pour nous montrer la liste des produits de cete sous-categorie à partir du fichier index.php J'aimerais que le sous-menu reste permanent même lorsque je regarde le produit info et qu'il se modifie seulement si je change de catégorie. ces un peu comme la version de oscommerce version 2.2 originale mais en horizontale dans le header. Si vous avez un indice ou la solution pour nous, laissez vous aller en nous écrivant ca nous fera plaisir ) |
|
Version bas débit | Nous sommes le : 29th March 2024 - 12:25 |
Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |