Du lundi au samedi de 10h à 19h - Telephone dsi94 06 81 85 73 53 ou 09 70 46 10 25Fax dsi94 09 72 15 17 36Skype dsi94 dsi-94

ou comment transformer les textarea en dropdown

Prestashop vous permet de proposer a vos clients de personnaliser leur produit grâce à l'ajout de champs à remplir. Malheureusement, cela se traduit par l'insertion de textarea sur la fiche produit,ce qui n'est pas toujours ce qu'il y a de mieux.

Voici donc un petit tutoriel pour transformer ces textarea en menu déroulant avec une liste de choix possible...Pour l'exemple, on va afficher une liste de saveur pour cigarettes électroniques

  1. Connectez-vous à votre FTP, puis allez dans le répertoire de votre thème. Là, créez un nouveau fichier "saveur.tpl" (vous pouvez bien sûr l'appelez comme vous voulez)
  2. On va maintenant créer la variable qui va gérer les données de la liste {assign var='saveur' value=','|explode:"Abricot,Ananas,Anis,Barbe à Papa,Café,Caramel,Cerise,Chocolat,Chewing Gum,Citron Vert,Citron,Fraise,Fraise Bonbon,Framboise,Fruit de la Passion,Goyave,Groseille,Guimauve,Jasmin,Kiwi,Mandarine,Mangue,Melon,Menthe,Noisette,Noix de Coco,Nougatine,Orange,Pain d'Epice,Pamplemousse,Papaye,Pastèque,Pèche,Pomme d'Amour,Pomme,Raisin,Réglisse,Rose,Tarte Tatin,Thé Vert,Tutti Frutti,Vanille,Violette"}
  3. Connectez-vous maintenant à votre BO de Prestashop, et ouvrez le produit pour lequel vous souhaitez ajouter la liste.
  4. Allez dans l'onglet personnalisation, ajoutez un champs texte et donnez lui la valeur "saveur". Enregistrez.
  5. Maintenant, il nous faut l'ID de ce champs de customisation. Pour cela, rendez-vous dans l'onglet "Paramètres avancées > Performances", et cochez la case pour toujours ouvrir la console de debogage
  6. Allez sur votre Front Office, à la page du produit pour lequel vous avez rajouter le champs et cherchez dans la console de debug la ligne "$customizationFields". Cela vous donne un array avec le nombre de champs de customisation sur la fiche produit et leur ID
  7. Reprenez votre fichier saveur.tpl. On va créer une condition pour que la transformation ne se fasse que pour les champs que l'on souhaite
    {if ($field.id_customization_field == 1 }
    <select name="textField{$field.id_customization_field}">
    {foreach from=$taux_liquide item='item'}
    <option value="{$item}" {if isset($textFields.$key)}{if $textFields.$key == {$item}}selected="selected"{/if}{/if}>{$item}</option>
    {/foreach}
    </select>
    {else}
    <textarea type="text" name="textField{$field.id_customization_field}" id="textField{$customizationField}" rows="1" cols="40" />{if isset($textFields.$key)}{$textFields.$key|stripslashes}{/if}</textarea>
    {/if}
    Que fait ce code ? Il indique tout simplement que si le champs de customisation à l'ID 1, on applique la transformation en select avec les valeurs données dans le assign, sinon le champs reste en textarea classique
  8. Enregistrez votre fichier, et voilà...Vous avez maintenant un beau select sur votre fiche produit. Vous pouvez bien sûr en rajouter autant que vous le voulez...

Testé sous Prestashop 1.5.x...Et voici le résultat liste-dropdown-produit-prestashop

Compétences DSI94

competences-dsi94

Nous contacter

Tél : 09 70 46 10 25
Mob : 06 81 85 73 53
Fax : 09 72 15 17 36

Formulaire de contact et demande de devis gratuit

Goto Top