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

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> [Résolu] Trie des produits dans le catalogue
Rusti
posté 3 Sep 2014, 08:16
Message #1


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 103
Inscrit : 11-October 10
Lieu : Villemomble
Membre no 28103



Bonjours,
Voilà j'essais de faire un filtre qui permet de trier les articles d'une catégorie par prix (type slider range). Mon slider est créer et je récupère bien les info de celui-ci quand une modification est faite (pour que le prix choisi reste en place après l'envoie du formulaire). Le soucis c'est qu'il ne trie pas les produits. J'ai du mal à comprendre le fonctionnement des filtres - trie des produits dans le catalogue, ce qui fait que le champ va être prise en compte.
Donc si quelqu'un pouvait m'expliquer comment fonctionne le système sa serai super.

Merci
Richard

Ce message a été modifié par Rusti - 6 Sep 2014, 22:26.


--------------------
osCommerce v2.3
Go to the top of the page
 
Rusti
posté 3 Sep 2014, 10:21
Message #2


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 103
Inscrit : 11-October 10
Lieu : Villemomble
Membre no 28103



Bon je progresse, en ajoutant le code ci-dessous, si je modifie mon prix, il me fait bien le trie.
Code
    if (isset($HTTP_GET_VARS['testprice'])) {
    $testprice = $HTTP_GET_VARS['testprice'];
    $restrict_by_price .= ' and p.products_price >= ' . $testprice;
    }
    $listing_sql .= $restrict_by_price;


par contre tant que je met un prix supérieur tout va bien mais si je veux descendre le prix il ne veux pas le prendre en compte.
Exemple :
1er trie = 50
si je modifie pour mettre 60 pas de souci
mais si je veux redescendre à 55 rien ne change et dans ma barre d'adresse mon testprice ne change pas (&testprice=60).

blink.gif


--------------------
osCommerce v2.3
Go to the top of the page
 
Bonbec
posté 3 Sep 2014, 12:16
Message #3


Ceinture marron OSC
Icône de groupe

Groupe : Modérateurs
Messages : 1543
Inscrit : 30-May 06
Lieu : Vichy (03)
Membre no 10583



Bonjour,

Regarde si cette contrib ne te ferait pas gagner du temps : Shop by Price.


--------------------
Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse)
Config 2 en local avec UwAmp : Osc Phoenix
Go to the top of the page
 
Rusti
posté 4 Sep 2014, 09:37
Message #4


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 103
Inscrit : 11-October 10
Lieu : Villemomble
Membre no 28103



Bonjour Bonbec,

En fait je me suis déjà un peu inspiré de la page advanced_search_result pour récupérer certaines informations (pour que le prix choisi reste identique après l'envoi du formulaire).

Je pense que le soucis vient vraiment au niveau du $HTTP_GET_VARS['testprice']
C'est quand même bizarre qu'il ne veuille pas se modifier si la valeur est inférieur à la précédente (c'est la première fois que sa m'arrive ça)

Richard


--------------------
osCommerce v2.3
Go to the top of the page
 
Rusti
posté 6 Sep 2014, 22:26
Message #5


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 103
Inscrit : 11-October 10
Lieu : Villemomble
Membre no 28103



Bon je m'autorésolu.
En regardant de plus près le fonctionnement des formulaires dans la page d'index, j'ai fini par comprendre (en même temps c'était pas si compliqué).
Donc je laisse le code que j'ai mis pour que sa fonctionne (si sa peut servir à d'autres), et si certain ont quelque chose de plus propre je suis preneur.

Le morceau ci-dessous sert à envoyer les infos dans le formulaire GET
Code
    $filter_price = '';
    reset($HTTP_GET_VARS);
    while (list($key, $value) = each($HTTP_GET_VARS)) {
      if (($key != 'priceFrom') && ($key != 'priceTo') && ($key != tep_session_name()) && ($key)) {
        $filter_price .= tep_draw_hidden_field($key, $value);
      }
    }


Et celui-ci à trier les produits (attention le trie se fait sur des prix HT)
Code
    if (isset($HTTP_GET_VARS['priceFrom'])) {
      for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
        switch ($column_list[$i]) {
          case 'PRODUCT_LIST_PRICE':
          $listing_sql .= ' and p.products_price >= ' . $HTTP_GET_VARS['priceFrom'] . ' and p.products_price <= ' . $HTTP_GET_VARS['priceTo'];
          break;    
        }
      }
    }


Voilà en fait rien de compliqué, il ne reste plus qu'à rajouter le slide ou les champs pour entrer les prix.


--------------------
osCommerce v2.3
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 - 12:35
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)