Bienvenue invité ( Connexion | Inscription )
![]() ![]() |
5 Mar 2012, 18:33
Message
#1
|
|
|
Ceinture blanche OSC Groupe : Membres Messages : 16 Inscrit : 14-June 07 Membre no 17865 |
Bonjour,
je vous présente mon problème, j'ai un menu déroulant avec plusieurs catégories et sous catégorie, et lorsque que je clique sur une catégorie qui a une sous catégorie une page s'affiche pour les présenter. Mais moi je souhaiterais désactiver cette page, ou alors désactiver le lien de la catégorie qui ne contient pas de produit et qu'on soit obliger de sélectionner la sous catégorie. ![]() Merci Fabien Ce message a été modifié par net.master - 5 Mar 2012, 18:34. |
|
|
5 Mar 2012, 20:09
Message
#2
|
|
|
Ceinture orange+ OSC Groupe : Membres Messages : 319 Inscrit : 23-February 07 Membre no 15518 |
Bonjour, sans vouloir etre mechant on est cense deviner le code et le fonctionnement de ton module juste avec une image.
Mais que fait Mme Irma jamais la quand on en a besoin -------------------- Ms2.3+Category Description+Ckeditor+Colissimo+EasyPopulate+Header tags seo+Otf autothumb+PIM osSlideshow+Theme switcher+Ultimate Seo Urls+Icone stock+crawlprotect+Who's Online Enhancement+Master password
|
|
|
5 Mar 2012, 21:12
Message
#3
|
|
|
Ceinture blanche OSC Groupe : Membres Messages : 16 Inscrit : 14-June 07 Membre no 17865 |
voici le fichier index.php
Citation <?php
/* $Id$ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright © 2010 osCommerce Released under the GNU General Public License */ require('includes/application_top.php'); // the following cPath references come from application_top.php $category_depth = 'top'; if (isset($cPath) && tep_not_null($cPath)) { $categories_products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'"); $categories_products = tep_db_fetch_array($categories_products_query); if ($categories_products['total'] > 0) { $category_depth = 'products'; // display products } else { $category_parent_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$current_category_id . "'"); $category_parent = tep_db_fetch_array($category_parent_query); if ($category_parent['total'] > 0) { $category_depth = 'nested'; // navigate through the categories } else { $category_depth = 'products'; // category has no products, but display the 'no products' message } } } require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFAULT); ?> <?php if ($category_depth == 'nested') { $tab_sel = tep_href_link(FILENAME_CATEGORIES_NESTED); $current_page = FILENAME_CATEGORIES_NESTED; require(DIR_WS_INCLUDES . 'template_top.php'); include(FILENAME_CATEGORIES_NESTED); ?> <?php } elseif ($category_depth == 'products' || isset($HTTP_GET_VARS['manufacturers_id'])) { $tab_sel = tep_href_link(FILENAME_CATEGORIES_LISTING); $current_page = FILENAME_CATEGORIES_LISTING; require(DIR_WS_INCLUDES . 'template_top.php'); include(FILENAME_CATEGORIES_LISTING); ?> <?php } else { // default page $tab_sel = tep_href_link(FILENAME_DEFAULT); $current_page = FILENAME_DEFAULT; require(DIR_WS_INCLUDES . 'template_top.php'); $first_page = true; ?> <?php echo tep_draw_content_top();?> <div class="none"> <?php echo tep_draw_title_top();?> <h1><?php echo HEADING_TITLE; ?></h1> <?php echo tep_draw_title_bottom();?><br /> </div > <div class="contentContainer"> <?php if (($oscTemplate->hasBlocks('boxes_content'))) { ?> <?php echo tep_draw_content_top();?> <div class="boxes_content"> <?php echo $oscTemplate->getBlocks('boxes_content'); ?> </div> <?php echo tep_draw_content_bottom();?> <?php } ?> <?php // include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); include(DIR_WS_MODULES . FILENAME_UPCOMING_PRODUCTS); ?> </div> <?php echo tep_draw_content_bottom();?> <?php } require(DIR_WS_INCLUDES . 'template_bottom.php'); require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> |
|
|
5 Jun 2012, 18:07
Message
#4
|
|
|
Ceinture jaune OSC Groupe : Membres Messages : 72 Inscrit : 19-January 07 Membre no 14717 |
ça m'interresse aussi
je cherche en effet que lorsque l'on clique sur une catégories dans le bloc catégories on reste sur la page d'accueil et que cela n'ouvre que l'accordéon des sous catègories. dés que j'ais une piste je revient à bientot |
|
|
5 Jun 2012, 18:23
Message
#5
|
|
|
Ceinture orange OSC Groupe : Membres Messages : 210 Inscrit : 4-September 06 Lieu : dijon Membre no 11890 |
-------------------- Francois
Osco 2.31 avec pas mal de modifs qui fonctionnent. |
|
|
8 Jun 2012, 18:38
Message
#6
|
|
|
Ceinture jaune OSC Groupe : Membres Messages : 79 Inscrit : 10-March 12 Membre no 30700 |
Bonjour,
Pour le peu que j'en ai vu, il faut regarder du côté du fichier index( pour une version osc 2.3). Il y a certainement de la modification à faire. Pour la contribution donné par François, elle donne un menu déroulant en accordéon, mais par contre les catégories s'affichent quand même sur la page centrale. Edit: Pour ne plus afficher les "catégorie" lors du clique sur une catégorie, mettre en commentaire aux environs des lignes 28 sur le fichier index.php le passage suivant : Code else { $category_parent_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$current_category_id . "'"); $category_parent = tep_db_fetch_array($category_parent_query); if ($category_parent['total'] > 0) { $category_depth = 'nested'; // navigate through the categories } else { $category_depth = 'products'; // category has no products, but display the 'no products' message } } Edit par rapport au message de Gnidhal : le fait de mettre en commentaire : il s'agit là d'une "solution" barbare, et ultra temporaire. C'est carrément pas propre. Ce message a été modifié par freestyle83 - 9 Jun 2012, 15:50. -------------------- Version : Osc 2.3 - modifié
Contributions installées: Actual attribute Price | accordion catégories menu | multi attribute v2 | Modif personnelles: Slider en page d'accueil | menu horizontale déroulant sur plusieurs colonnes | produits aléatoires dans les articles | |
|
|
9 Jun 2012, 14:42
Message
#7
|
|
![]() 5eme dan OSC Groupe : Administrateur Messages : 9130 Inscrit : 4-March 03 Lieu : Auray Membre no 927 |
Je crois surtout qu'il faudrait regarder le code de la fonction qui fabrique ton menu.
Normalement ce type de code utilise l'arborescence <ul><li> et les degrés sont un empilement de <ul><li><ul><li>Bla</li>... donc dans ton menu tu as une fonction qui génère les liens. Voici un exemple de code d'une fonction qui génère une arbo de ce type avec des ul-li empilés. Ajout Pour chaque catégorie on compte le nombre de produits et s'il n'y en a pas on remplace le lien par # avec un return false (optionnel, ça évite que le click relance la page d'accueil si on est ailleurs) Tu peux aussi virer la balise <a> carrément mais avec le risque de détruire ton style qui prend peut-être en compte cette balise dans le css en tous cas j'ai ajouté une classe css pour ces lien vides afin de pouvoir les différencier par le style justement Code function do_menucat($parent=''){ global $languages_id; $sub =''; $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '$parent' and c.categories_id = cd.categories_id and cd.language_id='" . (int)$languages_id ."' order by cd.categories_name"); if (tep_db_num_rows($categories_query)){ $sub .='<ul>'; while ($categories = tep_db_fetch_array($categories_query)) { $cid = (int)$categories['categories_id']; $products_query = tep_db_query("select * from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . $cid . "'");// compte les produits $count_prod_in_cat = tep_db_num_rows($products_query); if ($count_prod_in_cat) $sub .='<li><a href="'.tep_href_link(FILENAME_DEFAULT, 'cPath='.$cid).'">'.$categories['categories_name'].'</a>'; // s'il y a des produits else $sub .='<li><a class="CouleurNoLink" href="#" onclick="return false;">'.$categories['categories_name'].'</a>'; // s'il n'y en a pas! CouleurNoLink permet de gérer le style de ce lien depuis la css $check_query = tep_db_query("select categories_id from " . TABLE_CATEGORIES . " where parent_id = '$cid'"); if (tep_db_num_rows($check_query)) $sub .= do_menucat($cid); $sub .='</li>'; } $sub .='</ul>'; } return $sub; } echo do_menucat(); Bon c'est à tester mais en principe ça roule -------------------- Tout d'abord :
- Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues : Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums. Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin. ----------------------------- Quelques sites de référence --------------------------- PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloperLe gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien) |
|
|
![]() ![]() |
|
Version bas débit | Nous sommes le : 20th June 2013 - 09:16 |
| Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |