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] Ça existe ou pas ?
Rusti
posté 29 Oct 2011, 06:13
Message #1


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 52
Inscrit : 11-October 10
Membre no 28103



Voila après moulte recherche je n'ai pas trouvez mon bonheur alors je viens vers vous.
En fait je voudrais liés des attributs je m'explique:
Si un client choisi l'attribut A alors l'attribut F et V s'affiche.
Par contre si il choisi l'attribut B alors c'est C et D qui se montre.

Pour être un peu plus précis ce n'est pas spécialement le nom de l'attribut c'est sont prix qui m'intéresse, je fais de la personnalisation et selon l'option choisi le prix des options qui suivent peu être différent
Exemple:
Impression 1 couleur
Taille logo = 10€

Impression 2 couleurs
Taille logo = 20€

Voila du coup je c'est pas trop si mon idée de départ est la bonne ou si il faut plutôt que je travail directement sur les prix.
Donc ci quelqu'un connait une contrib ou as des éléments qui pourrait me mettre sur la piste ou même tous simplement une remarque je suis preneur.

Merci et bonne journée

Ce message a été modifié par Rusti - 15 Nov 2011, 06:08.


--------------------
osCommerce v2.2 RC2a
Go to the top of the page
 
chti_poupon
posté 29 Oct 2011, 10:09
Message #2


Ceinture noire OSC
Icône de groupe

Groupe : TechDev
Messages : 2521
Inscrit : 9-September 08
Lieu : Douai
Membre no 22915



Bonjour !
J'avais lu jadis ceci, et suivants, qui semble adapté à ton problème.
Bon code !

Chti Poupon

Citation (Webby And Wappy @ 28 Nov 2004, 12:33) *
Instructions d'installation du module CUSTOM PC CREATOR pour une version OSC2.2MS2 modifié :

etc... etc...
Sébastien
Go to the top of the page
 
Rusti
posté 29 Oct 2011, 10:17
Message #3


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 52
Inscrit : 11-October 10
Membre no 28103



Merci chti_poupon je vais regarder ça et je tient au courant.


--------------------
osCommerce v2.2 RC2a
Go to the top of the page
 
Rusti
posté 29 Oct 2011, 20:16
Message #4


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 52
Inscrit : 11-October 10
Membre no 28103



Bon j'ai regarder d'un peu plus près PC custom et CCC (custom Computer Creator) le soucis ces que mes attributs sont déjà extrêmement modifier (je m’était basé sur la contrib OptionTypes que j'ai beaucoup modifié pour en faire se que je désirais).
Bref petite question qui me parait bête au moment ou je la pose mais bon vaut mieux savoir que pas savoir.
Pensez vous qu'il soit possible d'afficher les options avec un onChange en fonction de l'option choisi (la je suis pas sur que tout le monde arrive à suivre wacko.gif ) ?

C'est une piste qui me parait possible avant de me dire que je vais faire passer mon module de personnalisation en devis pour la facturation ce qui m'embêterait un peu quand même.

Merci




--------------------
osCommerce v2.2 RC2a
Go to the top of the page
 
Gnidhal
posté 29 Oct 2011, 22:14
Message #5


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9203
Inscrit : 4-March 03
Lieu : Auray
Membre no 927



Bonjour,
je ne pense pas que ça existe en contribution, mais je crois que si ça n'est pas simple, ça n'est pas impossible.
le principe passe par la détection de l'option par le nom puis alors on ajoute selon ce nom des action js sur l'option
Cette action peut restreindre par exemple le nombre d'option du second déroulant.

Tout se passe dans product_info.php bien sur :
tu vas trouver la boucle de lecture des options dans ces lignes là :
Code
      $products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name");
      while ($products_options_name = tep_db_fetch_array($products_options_name_query)) {

donc dans cette boucle tu peux ajouter ta détection sur le nom de l'option pour insérer plus bas le code dans la création du menu déroulant :
Code
            if (preg_match('/équipement?/i', $products_options_name['products_options_name']) ) {
              $onChange = 'checkEquipmt(this.value);';          
              $info_plus = picto_info(TEXT_PI_EQUIPEMENT, 'L',2);
              $idPull = ' id="PullEquip" ';
            }
            if (preg_match('/verres? teintés?/i', $products_options_name['products_options_name']) ) {
              $info_plus = picto_info(TEXT_PI_VERRE_TEINTE, 'L',2);
              $onChange = 'checkTeinte();';          
              $idTR = ' id="TrTeinte" ';
              $idPull = ' id="PullTeinte" ';
            }
          $params .= ' style="float:left;width:396px;" onchange="MaFonction(this.value,\''.$products_options_name['products_options_id'].'\');'.$onChange.'"';

donc plus bas tu trouve la création du pull_down qui selon l'option peut changer de mise en forme ou activer une fonction javascript sur le onchange :
Code
            <tr <?php echo $styleTR.$idTR;?>>
              <td class="main" style="width:160px;"><?php echo $products_options_name['products_options_name'] . ':'; ?></td>
              <td class="main"><?php echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute, $params.$idPull). tep_draw_hidden_field('A_'.$products_options_name['products_options_id'].'','', 'id="'.'A_'.$products_options_name['products_options_id'].'"').$info_plus.' '; ?></td>
            </tr>

bien sur, c'est là une méthode mais je n'ai pas trouvé mieux.
comme tu le vois, le TR qui inclut le menu déroulant peut avoir un style ($styleTR) et un id ($idTR) de manière à modifier via la css la forme ou à l'adresser via le DOM
la fonction picto_info insère une icône d'information avec un mouseover jQuery
et tu peux personnaliser la fonction js déclenchée par le déroulant via la variable $onChange qui s'ajoute à une fonction générique "MaFonction(this.value)" qui récupère la valeur de l'option pour le js.

Il ne servirait à rien que je te file mon script, car il est complètement personnalisé et correspond spécifiquement à un besoin. J'espère que ces bouts de code te donneront des idées de dev à partir de ce principe.

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
 
Rusti
posté 30 Oct 2011, 20:44
Message #6


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 52
Inscrit : 11-October 10
Membre no 28103



Merci Gnidhal, çà me permet déjà de comprendre le fonctionnement et donc me permettre d'avancer.

EDIT : j'ai mis résolu sur le post car la solution de Gnidhal est suffisante mais je n'ai pas encore terminer.

Ce message a été modifié par Rusti - 15 Nov 2011, 06:10.


--------------------
osCommerce v2.2 RC2a
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 : 18th April 2014 - 14:06
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)