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 catégorie ( resolu)
psy4
posté 4 Jul 2007, 20:35
Message #1


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 42
Inscrit : 18-March 07
Membre no 16000



Bonjour a tous,

j'ai cherché partout réponse à mon problème mais jamais personne ne répond.


Voila mon probléme :
Lorsque je clique sur une catégorie, j'aimerai que tout les articles qui sont dans une des sous catégorie apparaissent. A la place j'ai aucun produit dans la catégorie qui s'affiche.

Il faudrai donc que la catégorie puisse faire le listing de sa propre catégorie et de toute les sous catégorie qu'elle contient.

Pourriez m'aidez svp à me guider sur une piste. merci bcp bcp



ohmy.gif

Ce message a été modifié par psy4 - 5 Jul 2007, 19:56.
Go to the top of the page
 
Xav
posté 4 Jul 2007, 20:40
Message #2


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 94
Inscrit : 16-August 06
Lieu : Toulouse
Membre no 11553



Euh, c'est ce que fait Oscommerce par défaut, non.
Il affiche tous les produits présents dans les différentes catégories filles.
Sauf si dans la catégorie mère concernée, il y a un article actif ou inactif ...
Dans ce cas, il affiche aucun produit dans cette catégorie car à la racine il trouve un produit inactif ou hors stock....
Go to the top of the page
 
Gnidhal
posté 4 Jul 2007, 21:35
Message #3


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9221
Inscrit : 4-March 03
Lieu : Pau
Membre no 927



Tonton ya l'téléphon' qui son' et ya jamais person' qui répond...!
ok c'est vieux...

la solution à ta demande réside
1/ dans index.php vers la ligne 111 où on trouve :
CODE
// needed for the new products module shown below
    $new_products_category_id = $current_category_id;
?>
              </tr>
            </table></td>
          </tr>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
          </tr>
          <tr>
            <td><?php include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); ?></td>
          </tr>
        </table></td>
      </tr>
    </table></td>

2/ dans le module new_products.php
on passe à ce module la valeur courante de la catégorie $current_category_id et il se charge de traiter cette info en allant chercher tous les produits des sous-catégories dans la limite à afficher classés par date de manière dégressive.
Tu as donc
- l'info racine : la valeur de la catégorie parente,
- la requête : celle qui est dans modules/new_products.php

il ne reste plus qu'à bricoler tout ça pour récupérer la liste de tous les produits de la catégorie actuelle et des catégories filles et les afficher sous forme de liste avec ou sans boutons...

bon code wink.gif



--------------------
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 WebDeveloper
Le 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)
Go to the top of the page
 
psy4
posté 4 Jul 2007, 22:17
Message #4


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 42
Inscrit : 18-March 07
Membre no 16000



shock.gif

merci bcp les gars,

Gnidhal pourrai tu m'expliquer un peu plus ce que je dois faire avec $current_category_id

si tu as un fichier déjà modifier avec cette manip, je pourrai y jeter un oeil ?

Ce message a été modifié par psy4 - 4 Jul 2007, 22:28.
Go to the top of the page
 
psy4
posté 4 Jul 2007, 22:24
Message #5


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 42
Inscrit : 18-March 07
Membre no 16000



CITATION(Xav @ 4 Jul 2007, 21:40) [snapback]242311[/snapback]
Euh, c'est ce que fait Oscommerce par défaut, non.
Il affiche tous les produits présents dans les différentes catégories filles.
Sauf si dans la catégorie mère concernée, il y a un article actif ou inactif ...
Dans ce cas, il affiche aucun produit dans cette catégorie car à la racine il trouve un produit inactif ou hors stock....



non malheureusement chez moi ca ne le fais pas, il m'affiche
Il n'y a aucun produit listé dans cette catégorie.
malgré les sous catégorie
Go to the top of the page
 
Gnidhal
posté 5 Jul 2007, 08:46
Message #6


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9221
Inscrit : 4-March 03
Lieu : Pau
Membre no 927



CITATION(psy4 @ 4 Jul 2007, 23:17) [snapback]242332[/snapback]
Gnidhal pourrai tu m'expliquer un peu plus ce que je dois faire avec $current_category_id

Non désolé je n'ai rien en la matière.
Mais je te donne là la méthode de développement avec les éléments déjà inclus.
à cet endroit de index.php et dans presque tout le script, $current_category_id contient l'id de la catégorie dans laquelle on est.
La requete dans new_products.php effectue déjà les 3/4 de ce que tu veux puisqu'elle liste les produits de manière récursive dans cette catégorie et ses filles.
Il ne reste plus qu'à adapter tout ça pour
1/ faire une requête adaptée à tes besoins
2/ mettre en forme la liste des produits comme c'est déjà fait dans index.php au niveau "nested"

c'est du dev à façon et je ne crois pas qu'il y ait de contribution pour ça.

Bon code;)
cela dit, ici on n'apprécie guère les warnings du type "urgent" dans le titre.
Tout est urgent, c'est une question de point de vue et chacun participe ici selon son bon vouloir. Ce genre de signe de priorité ne peut donc être que mal perçu dans un univers collaboratif où tout a la même valeur d'urgence.


--------------------
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 WebDeveloper
Le 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)
Go to the top of the page
 
psy4
posté 5 Jul 2007, 18:26
Message #7


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 42
Inscrit : 18-March 07
Membre no 16000



ok je comprend pour le probleme d'urgence, je te remercie d'avoir repondu à mon appel.

Je t'avouerai que je ne t'ai toujours pas piger la méthode que tu tente de m'expliquer. Je ne suis pas un développeur php et aimerai vraiment en apprendre plus. Maintenant mon défi est de surmonter ce problème, pourrez tu stp m'aider ??

merci
Go to the top of the page
 
psy4
posté 5 Jul 2007, 19:57
Message #8


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 42
Inscrit : 18-March 07
Membre no 16000



voila la modif fonctionne bien ( vu sur le forum officiel):

Gnidhal tu peu recuperé si tu le souhaite

CODE
At around line 20 find

if ($cateqories_products['total'] > 0) {
$category_depth = 'products'; // display products
} else {


replace with

// Begin show all subcategories mod.
if (tep_count_products_in_category($cPath) > 0) {
// End show all subcategories mod.
$category_depth = 'products'; // display products
} else {



Then the actual search in the database has to be modified to include all subcategories, like this:


At around line 186 find

// We show them all
$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";
}
}


Replace with



// We show them all

// Begin show all subcategories mod.

$cPathA = explode("_", $cPath);
$size = sizeof($cPathA)-1;
$subcategories_array = array();
tep_get_subcategories($subcategories_array, $cPathA[$size]);
$size_sc = sizeof($subcategories_array); //Subcat count
$cat_Search = "(";
for($i = 0; $i < $size_sc; $i++){
$cat_Search .= "p2c.categories_id = '" . $subcategories_array[$i] . "' or ";
}
$cat_Search .= "p2c.categories_id = '" . $cPathA[$size] . "'" . ")";

$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and ". $cat_Search . "";

}
}

// End show all subcategories mod.
Go to the top of the page
 
Gnidhal
posté 5 Jul 2007, 20:37
Message #9


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9221
Inscrit : 4-March 03
Lieu : Pau
Membre no 927



Merci de cette réponse qui est dans l'esprit collaboratifs de nos forums smile.gif

Ok perso je n'en ai pas besoin pour le moment, mais ça peut servir à d'autres. Donc bravo d'avoir partagé le fruit de tes recherches.


--------------------
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 WebDeveloper
Le 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)
Go to the top of the page
 
webnanoo
posté 26 Jul 2007, 00:52
Message #10


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 60
Inscrit : 18-July 07
Membre no 18410



Bonjour,



C'est ce que je voudrais faire mais je voudrais que pour les categorie 41 et 25 qui sont les deux categorie principales l'affihage reste normal (c'est à dire affichage des vignette des sous categorie) mais que lorsque que l'on est dans dans la sous categorie 41-44 par exemple elle s'affiche comme tu viens de l'expliquer.

Merci de me dire s'il il ya une solution ?
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 : 29th March 2024 - 00:49
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)