We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 15763
    • 33 Posts
    Bonjour,

    Un client me demande de mettre en place un site vitrine avec des produits et des idées de recettes lié à ces produits.

    Je me demande qu’elle est la solution la plus simple pour ce genre de chose. La fiche produit devient container des recettes ? Pas très pratique et compliquer à expliquer au client je pense.

    Le plus simple serait une rubrique produit, une rubrique recette avec la possibilité de lier une fiche produit avec une ou plusieurs recettes.

    Vos idées et vos avis m’intéresse.

    Merci par avance.

    Kezen
      • 10152
      • 156 Posts
      Bonjour,

      je réponds peut-être à coté de la plaque, mais ce qui vient instantanément à l’esprit c’est de créer plusieurs ou une TV (variable de modèle) de type textarea et nommée "recette" et de l’assigner au template des produits.

      L’idée de placer les recettes en sous-documents est valable également ce qui est mieux d’ailleurs car tu peux créer autant de recettes que nécéssaire pour chaque produit, tandis qu’avec les TV tu devra créer X champs qui resteront vide si le client ne met pas de recette dedans. (sans compter que par défaut les textarea des TVs sont un peu ric-rac, beaucoup moins ergonomiques que de vrais documents)

      Ou alors, si une recette peut corrspondre à plusieurs produits, pourquoi ne pas les stocker dans des chunks . (mais là aussi, c’est pas évident de faire accepter ça au client car un chunk, ça fait un peu "programmation" .)

      À mon humble avis toutes les solutions sont valables car comme souvent avec modx on peut réaliser son projet de X façons.
      Le plus intuitif pour le client est sans doute de créer des sous-documents. Tu sembles redouter que cette méthode soit "Pas très pratique et compliquer" mais je pense que c’est la meilleure et qu’au contraire c’est enfantin.
        • 34001
        • 428 Posts
        Bonsoir,
        Le plus simple serait une rubrique produit, une rubrique recette avec la possibilité de lier une fiche produit avec une ou plusieurs recettes.
        Ca me paraît également la meilleure option.
        Il y a peut-être plus simple mais voici comment j’ai procédé sur un de mes projets:

        › Mise en place de la structure de ressources suivante:

        - Recettes
        -- Recette n°1
        -- Recette n°2
        -- Recette n°3
        - Produits
        -- Fiche Produit n°1
        -- Fiche Produit n°2
        -- Fiche Produit n°3

        › Création d’un modèle Produits associé aux fiches produits et un modèle Recettes associées aux recettes.

        › Création d’une TV de type «Liste déroulante à choix multiples» nommée ChoixDesRecettes et affectée au modèle Produit. Celle-ci permettra de choisir les recettes que l’on associe à chacun des produits. Pour générer la liste des recettes à sélectionner, j’ai ajouté ce code dans le champ «Valeurs optionnelles d’entrée»:
        @EVAL return $modx->runSnippet('ListingRecettes');

        Celui-ci permet de lancer un snippet nommé ListingRecettes qui génère la liste des recettes existantes. Voici le code de ce snippet:
        <?php
        $output = '';
        $result = $modx->db->query("SELECT * FROM modx_site_content WHERE template='15' ORDER BY pagetitle");
        while( $row = $modx->db->getRow( $result ) ) {
            $output .=  $row['pagetitle'].'=='.$row['id'].'||';
        }
        echo $output;
        ?>
        

        Dans le requête SQL, l’identifiant du modèle (15 dans mon exemple) est à remplacer par celui du modèle Recettes créé précédemment.

        › Pour afficher la liste des recettes sur la fiche produit, on ajoute un appel Ditto dans le modèle Produits:
        [!Ditto? &tpl=`ListeDesRecettes` &documents=`[*ChoixDesRecettes*]` &noResults=`Aucune recette n'a été proposée pour le moment.`!]

        Le paramètre &documents permet de préciser les ressources que l’on souhaite afficher. C’est là où la variable ChoixDesRecettes trouve son utilité.

        › Création du chunk «ListeDesRecettes». Celui-ci correspond au template de l’appel Ditto et donc à l’affichage des recettes sur la fiche produit. Voici ce que ça pourrait donner:
        <h3><a href="[~[+id+]~]">[+pagetitle+]</a></h3>
        <p>[+introtext+]</p>
        

        En l’occurrence, on affiche pour chacune des recettes son titre et son résumé. Un clic sur le titre permet d’accéder à la recette complète.

        Avec cette solution, on a une indépendance complète entre la création de recettes et de produits, tout en permettant de lier facilement une ou plusieurs recettes à chacun des produits.

        Si quelqu’un a une solution plus simple, je suis preneur. smiley

          Intégrateur web freelance
          • 15763
          • 33 Posts
          Quote from: French at Mar 09, 2010, 12:41 PM

          À mon humble avis toutes les solutions sont valables car comme souvent avec modx on peut réaliser son projet de X façons.
          Le plus intuitif pour le client est sans doute de créer des sous-documents. Tu sembles redouter que cette méthode soit "Pas très pratique et compliquer" mais je pense que c’est la meilleure et qu’au contraire c’est enfantin.

          Le fait de faire dépendre les recettes des produits n’est pas compliqué en effet. Cependant cela engendre d’autres problèmes. Les recettes s’appliquant à plusieurs produits doivent être dupliquées, l’appel de toute les recettes sur une page du front devient plus complexe à mettre en oeuvre et enfin les explications pour le clients sont plus hasardeuses.

          Quote from: Fairytree at Mar 09, 2010, 04:40 PM

          Bonsoir,
          Ca me paraît également la meilleure option.
          Il y a peut-être plus simple mais voici comment j’ai procédé sur un de mes projets:
          ...

          Je suis fan de ta solution, je vais me dépêcher de la tester. Voila ce qui me manque, quelques bonnes notions de programmation pour dépasser ce genre de chose. Merci encore pour ton aide.