Virtuemart -Comment séparer les attributs personnalisés dans la fiche produit ?

Réduire
X
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Virtuemart -Comment séparer les attributs personnalisés dans la fiche produit ?

    Bonjour à tous,
    Après une recherche dans les différents forums, je n'arrive pas à trouver la méthode pour récupérer de manière "séparée" les variables personnalisées (attributs associées à un type de produit) dans Virtuemart.

    Les produits sont tous associés à un type de produit.
    Le type de produit contient plusieurs champs : année, auteur, producteur

    Il est possible d'appeler le bloc complet des attributs dans la fiche produit, mais ce qui m'intéresse, c'est d'afficher les attributs de manière séparé où je veux dans mon template browse...

    En clair, comment définir dans le fichier shop.product_details.php les variables se trouvant dans jos_vm_product_type (ou jos_vm_product_type_1) et les associer séparément à une variable année, auteur et producteur pour les réutiliser à volonté et à l'emplacement choisi dans la fiche détaillée du produit ?

    J'ai essayé plusieurs écritures, mais sans succès...
    Merci
    Cordialement,
    Chabi01 - http://www.xlformation.com

  • #2
    Re : Virtuemart -Comment séparer les attributs personnalisés dans la fiche produit ?

    Bonjour,

    Si c'est le product_type, je dis peut etre une bétise :
    Pourquoi ne pas reprendre dans shop.product_details la fonction list_product_type() du ps_product_type ?
    Par contre il faudra vérifier la valeur de $product_type["product_type_name"] apres....
    Création, personnalisation, synchronisation de gestion commerciale selige.fr:http://www.selige.fr
    "Avant de critiquer un produit gratuit, pense à ce que tu aurais pu dire si tu l'avais payé"

    Commentaire


    • #3
      Re : Virtuemart -Comment séparer les attributs personnalisés dans la fiche produit ?

      Bonjour Selige,
      Tu peux m'en dire plus ? J'ai fait des tests dans tous les sens pendant 2 heures et je n'obtiens rien...
      Au final, tu me dis que je peux obtenir quelque chose comme <?php echo $product_type["annee"] ?>
      C'est bien ce que je souhaite obtenir, mais il y a quelque chose qui m'échappe...
      Merci
      Cordialement,
      Chabi01 - http://www.xlformation.com

      Commentaire


      • #4
        Re : Virtuemart -Comment séparer les attributs personnalisés dans la fiche produit ?

        Code PHP:
        $product_type["annee"
        non ,
        je penses plutot à
        Code PHP:
        $product_type[product_type_name"]["annee"] 
        J ai pas testé, mais il faut refaire une fonction en doublant le tableau.

        Ca va peut etre t aider :
        http://forum.virtuemart.net/index.php?topic=55237.0
        Création, personnalisation, synchronisation de gestion commerciale selige.fr:http://www.selige.fr
        "Avant de critiquer un produit gratuit, pense à ce que tu aurais pu dire si tu l'avais payé"

        Commentaire


        • #5
          Re : Virtuemart -Comment séparer les attributs personnalisés dans la fiche produit ?

          Merci pour les liens et le coup de main
          Je vais regarder tout ça ce we pour tenter d'arriver à mes fins...
          Je reviens quand j'ai une solution...
          Cordialement,
          Chabi01 - http://www.xlformation.com

          Commentaire


          • #6
            Re : Virtuemart -Comment séparer les attributs personnalisés dans la fiche produit ?

            De rien, si j ai le temps je ferai de même.
            Je n'utilise jamais les attributs ( pas de gestion de stock), et rarement les product_type, mais là tu as une bonne idée .
            Création, personnalisation, synchronisation de gestion commerciale selige.fr:http://www.selige.fr
            "Avant de critiquer un produit gratuit, pense à ce que tu aurais pu dire si tu l'avais payé"

            Commentaire


            • #7
              Re : Virtuemart -Comment séparer les attributs personnalisés dans la fiche produit ?

              Salut,
              voici comment je procède, dans mon product detail:
              En début de script, juste après :
              if( $this->get_cfg( 'showPathway' )) {
              echo "<div class=\"pathway\">$navigation_pathway</div>";
              }

              inclure :
              //On decoupe la chaine $product_type pour r�cup�rer les diff�rentes variables (eco-part, video, garantie, ce)
              $ProduitVariableType = split(';', $product_type);
              $ProduitVariable = array();
              //print_r($ProduitVariableType);
              foreach ($ProduitVariableType as $variable){
              $temp = split('#', $variable);
              if (trim($temp[0])=="Twitter"){
              $count = count($temp);
              for ($i = 1; $i < $count; $i++) {
              if ($i==1){
              $ProduitVariable[trim($temp[0])] .= $temp[$i];
              }else{
              $ProduitVariable[trim($temp[0])] .= "#" . $temp[$i];
              }
              }
              }else{
              $ProduitVariable[trim($temp[0])] = $temp[1];
              }
              }
              unset($temp);
              unset($ProduitVariableType);

              puis pour chaque variable:

              if (isset($ProduitVariable["Garantie"])){
              if ($ProduitVariable["Garantie"]<>""){?>
              <div style="width:100%;text-align:center;">
              <img src="http://www.monsite.fr/images/garantie/garantie<?php echo intVal($ProduitVariable["Garantie"]) ?>ans.gif" alt="garantie <?php echo intVal($ProduitVariable["Garantie"]) ?> ans" width="100 px">
              </div>
              <?php
              }
              }

              Je procède comme cela pour la garantie, un lien vidéo, le texte twitter de chaque produit,....

              En espérant que cela te serve..

              Bon week
              *Pour transférer votre site, pensez à : JMoove (www.jmoove.fr)
              Un Merci fait toujours plaisir.....
              Pas de MP sans y avoir été invité.

              Commentaire


              • #8
                Re : Virtuemart -Comment séparer les attributs personnalisés dans la fiche produit ?


                J'allais carrément réécrire une requète et la splitter derrière mais avec ça, je crois que ça va bien m'aider !!!
                Si je vous montrais la fonction et le bazar que j'avais commencé à écrire, vous me diriez que je suis dingo !
                Je vais reprendre ton script et l'adapter à la boutique que je mets en place et je vous dis ce que ça donne !
                Merci à vous 2
                Chabi01 - http://www.xlformation.com

                Commentaire


                • #9
                  Re : Virtuemart -Comment séparer les attributs personnalisés dans la fiche produit ?

                  Une petite question sur ton bout de code :
                  Code:
                  if (trim($temp[0])=="Twitter"){
                  $count = count($temp);
                  for ($i = 1; $i < $count; $i++) {
                  C'est quoi cette boucle ?
                  C'est parce que tu as un attribut appelé Twitter ?
                  Tu te sers de cette variable comment pour éclater les attributs ?
                  Merci
                  Chabi01 - http://www.xlformation.com

                  Commentaire


                  • #10
                    Re : Virtuemart -Comment séparer les attributs personnalisés dans la fiche produit ?

                    Bonjour,
                    Après tous mes essais, je suis tombé sur une page qui résout le tout !
                    http://design.markcallf.co.uk/Virtue...menu-id-1.html
                    Mark Callf a écrit une modif pour Vm 1.1.x qui permet de faire exactement ce que je voulais obtenir :
                    Après avoir installé les fichiers modifiés, les variables sont accessible de cette manière :
                    Si j'ai un type de produit appelé "montypedeprod" et que j'ai les attributs "annee", "date", "producteur", il est alors possible d'afficher n'importe où les infos dans la fiche produit avec un appel tout simple :
                    Code:
                     
                    echo $montypedeprod_annee
                    echo $montypedeprod_date;
                    echo $montypedeprod_producteur;
                    C'est pas beau ça ???

                    Il n'y a qu'une seule chose qui me semble étonnant : si je fais un test sur une des variables, le résultat renvoyé est illogique...
                    Exemple :
                    J'ai un attribut appelé "Race" qui va contenir des valeurs restreintes (saisi par liste déroulante dans l'administration). Les valeurs sont "canard", "cochon", "poulet".
                    Si j'appelle la variable dans la fiche détaillée, aucun souci :
                    Code:
                     
                    echo $montypedeprod_race;
                    m'affiche bien ma valeur.

                    Maintenant, imaginons que pour rendre les choses plus jolies, je veuille remplacer mon texte par une image.
                    Dans mon flypage, je tape une condition toute simple :
                    Code:
                     
                    <?php if ($montypedeprod_race = "Poulet") : ?>
                    affichage du logo poulet.png
                    <?php endif: ?>
                    ... et je répète la condition pour l'affichage du cochon et du canard...et ben je me retrouve avec toutes les images affichées comme si les conditions étaient toujours vraies !!!
                    J'ai essayé avec un switch, avec une comparaison avec == et impossible de comprendre pourquoi les conditions sont toujours vraies...
                    Vous avez une idée ?
                    Cordialement,
                    Chabi01 - http://www.xlformation.com

                    Commentaire


                    • #11
                      Re : Virtuemart -Comment séparer les attributs personnalisés dans la fiche produit ?

                      Ayé ! Trouvé !
                      Y'avait une astuce....
                      Et je l'ai trouvé par hasard !
                      La modif de Mark Callf permet d'éclater les attributs pour les réutiliser indépendamment les uns des autres dans le template, mais ce qui faisait que cela ne marchait pas pour remplacer un champ par une image, c'était...un espace !!!!
                      Du coup, je pouvais tester "cochon" ou "poulet" alors qu'en fait, le résultat affiché était "cochon " (avec un espace), "poulet ", etc...

                      J'ai synthétisé mon truc pour éviter les conditions dans le flypage de cette manière : en nommant mes images de la même manière que mon attribut, j'obtiens alors :
                      "Poulet " -> correspond dans mon dossier image/ à l'illustration "poulet.png"
                      "Cochon " -> correspond à "cochon.png"
                      etc...

                      Il faut maintenant que pour appeler l'image je "nettoie" ce qui va me poser problème : l'espace, les majuscules et les accents.

                      - Pour les accents, j'ai utilisé la fonction STRTR (cela ne se voit pas ici, c'est un exemple, mais je pourrai avoir "Bébé", ce qui poserait problème pour un nom d'image)
                      - Pour l'espace en fin de chaine, j'ai utilisé la fonction SUBSTR avec une valeur négative,
                      - Pour remettre tout en minuscule, j'ai utilisé STRTOLOWER.
                      Ce qui me donne ceci :

                      Code:
                      <?php 
                      $animal = strtr($Informations_race, "éèê", "e"); //compléter pour éviter tous les accents se trouvant dans l'attribut
                      $animal = substr($animal, 0, -1); // permet d'enlever l'espace en fin de chaine
                      $animal = strtolower($animal); // on passe tout en minuscule
                      ?>
                      <p><img alt="cochon" src="images/<?php echo $animal; ?>.png" height="124" width="40" /></p>
                      Ce qui va m'afficher l'image "cochon.png" !
                      Et voilà, problème résolu !!
                      Merci à chacun des lumières, idées et indications de solutions,
                      Bons sites
                      Cordialement,
                      Dernière édition par chabi01 à 12/11/2011, 16h19
                      Chabi01 - http://www.xlformation.com

                      Commentaire

                      Annonce

                      Réduire
                      1 sur 2 < >

                      C'est [Réglé] et on n'en parle plus ?

                      A quoi ça sert ?
                      La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                      Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                      Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                      Comment ajouter la mention [Réglé] à votre discussion ?
                      1 - Aller sur votre discussion et éditer votre premier message :


                      2 - Cliquer sur la liste déroulante Préfixe.

                      3 - Choisir le préfixe [Réglé].


                      4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                      2 sur 2 < >

                      Assistance au forum - Outil de publication d'infos de votre site

                      Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                      Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                      Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                      UTILISER À VOS PROPRES RISQUES :
                      L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                      Problèmes connus :
                      FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                      Installation :

                      1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                      Archive zip : https://github.com/AFUJ/FPA/zipball/master

                      2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                      3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                      4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                      5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                      6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                      et remplacer www. votresite .com par votre nom de domaine


                      Exemples:
                      Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                      Télécharger le script fpa-fr.php dans: /public_html/
                      Pour executer le script: http://www..com/fpa-fr.php

                      Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                      Télécharger le script fpa-fr.php dans: /public_html/cms/
                      Pour executer le script: http://www..com/cms/fpa-fr.php

                      En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                      Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                      Voir plus
                      Voir moins
                      Travaille ...
                      X