osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Sous-menu permanent
dominicou
posté 9 Mar 2012, 17:12
Message #1


Ceinture blanche OSC
Icône de groupe

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>'."&nbsp;". "\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;
Go to the top of the page
 
jade7
posté 10 Mar 2012, 22:42
Message #2


Ceinture blanche OSC
Icône de groupe

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.
Go to the top of the page
 
mickaelguilbertx...
posté 16 Mar 2012, 16:48
Message #3


Ceinture blanche+ OSC
Icône de groupe

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;
}
Go to the top of the page
 
jade7
posté 28 Mar 2012, 16:18
Message #4


Ceinture blanche OSC
Icône de groupe

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 wink.gif)
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 28th March 2024 - 18:41
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)