jd440 Posted September 10, 2012 Share Posted September 10, 2012 (edited) Bonjour à tous, Voila pour une de mes boutiques je prévoie d'ajouter pour chaque produit des conseils d'entretiens Ces conseils seront : des pictogramme + du texte. Ces conseils devrais s'afficher dans une hook différents des autre caractéristiques. Et j'hésite sur la facon de developper intéger cela. Solution 1: Ajouter un caractéristique picto Ajouter un caractéristique conseils Puis dans le template mettre deux fois la boucle d'affichage des caractéristiques un qui affiche la caractéristique "normal", et ignore picto et conseil, et une deuxième boucles faisant l'inverse. ==> le souci est que du coup on mélange la partit Vue, avec la partie modèle {if isset($features) && $features} <!-- feature --> {foreach from=$features item=feature} {if isset($feature.value)} {if ($feature.name=='picto')} {$picto = split("-", $feature.value)} {$advices = "{$advices}<li>"} {foreach $picto as $keyvar} {$advices = "{$advices}<img src=\"{$img_dir}picto/{$keyvar}.png\">"} {/foreach} {$advices = "{$advices}</li>"} {elseif ($feature.name=='Conseil')} {$advices = "{$advices}<li>{$feature.value|escape:'htmlall':'UTF-8'}</li>"} {else} {$features_autre = "{$features_autre}<li><span class=\"product_caracteristique\">{$feature.name|escape:'htmlall':'UTF-8'}</span>{$feature.value|escape:'htmlall':'UTF-8'}</li>"} {/if} {/if} {/foreach} <!-- feature --> {/if} {if isset($advices)} <!-- product's advice --> <div id="advice"> <span class="advice_title typo_perso">Les Conseils d'entretiens</span> <ul id="idTab2" class="bullet"> {$advices} </ul> </div> <!-- product's advice --> {/if} [...] {if isset($features_autre) && $features_autre} <!-- product's features --> <ul id="idTab2" class="bullet"> {$features_autre} </ul> {/if} Solution 2: Ajouter une un attribue sur les "Feature" overrider la classe "Feature" pour avoir un variable "$feature_place1" "$feature_place2" 2 module correspondant appeler dans deux hool différents de la fiche produit, Solution 3: Créer complètement un nouveau système en parallèle des caractéristiques avec de nouvelle table avec de nouveau module en front et back Pour quelle solution opteriez vous, sachant que le temps de developpement est vraiment différents, mais j'ai peur quand dans la solution 1 déja developper, le temps d'affichage patissent de ce traitement de boucle sous smarty? Edited September 10, 2012 by jd440 (see edit history) Link to comment Share on other sites More sharing options...
Dev On Web Posted September 12, 2012 Share Posted September 12, 2012 Bonjour, Le pictogramme est complètement gérable via les caractéristiques (vous pouvez même simplifier cela avec des ID (images des pictos de type "id_caractéristique.jpg". Pour le conseil personnalisé, s'il y en a un par produit, je peux vous conseiller par exemple de créer un champ dédié (type texte) dans la table product en BDD. Pour cela, pensez à faire un override de la classe product afin de définir ce nouveau champ dans le modèle. Ensuite, vous pouvez le gérer via l'importation CSV (si besoin) ou modifier l'interface administration afin d'afficher un nouveau champ textarea + ckeditor. Pour cela, ça se passe via un override du contrôleur adminProductController. Bon développement ! Link to comment Share on other sites More sharing options...
jd440 Posted September 13, 2012 Author Share Posted September 13, 2012 c'est ce à quoi je pensais. si j'ajoute un champ sur la table product en BDD, est ce qu'il n'y a pas de risque que lors de mis à jour ce champs soit supprimé? Que pensez vous de ce traitement dans le template des donnés: {if isset($features) && $features} <!-- feature --> {foreach from=$features item=feature} {if isset($feature.value)} {if ($feature.name=='picto')} {$picto = split("-", $feature.value)} {$advices = "{$advices}<li>"} {foreach $picto as $keyvar} {$advices = "{$advices}<img src=\"{$img_dir}picto/{$keyvar}.png\">"} {/foreach} {$advices = "{$advices}</li>"} {elseif ($feature.name=='Conseil')} {$advices = "{$advices}<li>{$feature.value|escape:'htmlall':'UTF-8'}</li>"} {else} {$features_autre = "{$features_autre}<li><span class=\"product_caracteristique\">{$feature.name|escape:'htmlall':'UTF-8'}</span>{$feature.value|escape:'htmlall':'UTF-8'}</li>"} {/if} {/if} {/foreach} <!-- feature --> {/if} Link to comment Share on other sites More sharing options...
Dev On Web Posted September 13, 2012 Share Posted September 13, 2012 Bonjour, Oui a tester mais ça parait bon Pas de risque pour le champ ajouté en BDD je pense ! Le plus important seront les overrides qui eux, seront bien conservés. Bonne continuation. Link to comment Share on other sites More sharing options...
jd440 Posted September 16, 2012 Author Share Posted September 16, 2012 je te remercie. C'est ce que j'ai fait avec en plus un ovverride de la classe produit, du template adminproduct Merci encore Link to comment Share on other sites More sharing options...
Jean-Bruno Posted October 2, 2012 Share Posted October 2, 2012 Salut jd440 Tu pourrais détailler avec en plus un ovverride de la classe produit, du template adminproduct ? Là je suis un peut larguer Merci beaucoup Jean-Bruno Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now