eljouarz Posted June 25, 2012 Share Posted June 25, 2012 (edited) Bonjour, J'ai besoin de rajouter deux lignes supplémentaires dans la product_list.tpl. Pour rajouter un champ dans la fiche produit j'ai utilisé le tuto suivant http://www.webbax.ch...ice-prestashop/ Les champs que j'ai rajouté fonctionnent très bien dans le front et back office de la fiche produit. J'ai ensuite rajouté le code suivant dans le doc product_list.tpl : <div id="description_short"> <p class="product_desc"><a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.description_short|truncate:65:'...'|strip_tags:'UTF-8'|escape:'htmlall':'UTF-8'}">{$product.description_short|truncate:75:'...'|strip_tags:'UTF-8'}</a></p> </div> <div id="description_short2"> <p class="product_desc2"><a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.description_short2|truncate:65:'...'|strip_tags:'UTF-8'|escape:'htmlall':'UTF-8'}">{$product.description_short2|truncate:75:'...'|strip_tags:'UTF-8'}</a></p> </div> <div id="description_short3"> <p class="product_desc3"><a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.description_short3|truncate:65:'...'|strip_tags:'UTF-8'|escape:'htmlall':'UTF-8'}">{$product.description_short3|truncate:75:'...'|strip_tags:'UTF-8'}</a></p> </div> Le contenu de $product.description_short2 et $product.description_short3 n'apparaîssent pas dans la product_list dans le front office. J'ai prévu l'emplacement, si je répète 2 autres fois $product.description_short j'ai bien 3 lignes (identiques bien sur). $product.description_short2 et $product.description_short3 apparaissent très bien dans la fiche produit dans le front office. Pour rajouter ces éléments dans la product_list je sais qu'il faut rajouter un smarty assign dans la class product.php. Mais je ne sais pas où le positionner, je l'ai mis à : public function getTranslationsFieldsChild() self::validateFieldsLang(); global $smarty; $smarty->assign('description_short2','description_short3', $fields ); $smarty->display(dirname(__FILE__).'product-list.tpl'); Je ne dois pas bien la positionner ou avoir la bonne syntax. (voir fichier joint). j'ai essayé plusieurs solutions, j'ai forcé la compilation Smarty et pas de cache. Est-ce que quelqu'un peut m'aider à résoudre ce problème ? Je vous remercie. Cordialement eljouarz Product.php Edited July 12, 2012 by eljouarz (see edit history) Link to comment Share on other sites More sharing options...
devprestacom Posted June 25, 2012 Share Posted June 25, 2012 Bonjour, Je n'ai pas regardé le tuto mais je ne pense pas qu'il faille assigner les 2 variables. Il faut : - Ajouter les 2 champs dans la bdd - Ajouter les 2 champs comme attribut de la classe product.php - Ajouter les champs dans les tableaux de validation et d'attributs - Ajouter les champs dans la méthode de récupération des champs (dans la classe product.php) Pour mieux comprendre, regarde comme le champs name est utilisé dans les 4 endroits mentionnés ci-haut Si tu ne te retrouves pas, fais moi signe. Cordialement, Link to comment Share on other sites More sharing options...
eljouarz Posted June 25, 2012 Author Share Posted June 25, 2012 Bonjour, Justement le tuto servait à rajouter les points de ton mail. Comment puis t'envoyer le fichier avec les lignes surlignées, pour vérifier que je n'ai rien oublié, si tu veux bien. Merci pour ton aide. eljouarz Link to comment Share on other sites More sharing options...
devprestacom Posted June 26, 2012 Share Posted June 26, 2012 Bonjour, Tu peux m'envoyer le fichier par MP ou par mail ([email protected]) Cordialement, Link to comment Share on other sites More sharing options...
devprestacom Posted June 26, 2012 Share Posted June 26, 2012 Bonsoir, J'ai reçu tes 2 fichiers et j'ai quelques remarques - On n'a pas besoin d'ajouter des champs multilingues dans le tableau $fieldsValidate - Pour surcharger un fichier, il faut laisser juste ce qui (méthodes) a été modifié [Ca ne pose pas de gros pb à part pour les constantes que je vois définies au début : _CUSTOMIZE_FILE_ et _CUSTOMIZE_TEXTFIELD_] - Je constate que le fichier adminProduct.php (de admin/tab) n'aurait pas été modifié. Dans ce fichier il faut voir comment le champs ''short description" et reproduire 2 cas pour ''short description2" et ''short description3". Cette partie ressemblera à ce qui est dans mon fichier joint (j'ai dû commencer par le cas de ''short description" pour que tu t'y retrouves) - J'ai aussi mis du sql dans le fichier joint. Vois ces détails et je pense que tout ira bien. Cordialement, Link to comment Share on other sites More sharing options...
devprestacom Posted June 26, 2012 Share Posted June 26, 2012 Bonsoir, J'ai reçu ton mail mais je ne comprends pas si tu veux dire que ça marche ou pas. Cordialement, Link to comment Share on other sites More sharing options...
devprestacom Posted June 27, 2012 Share Posted June 27, 2012 (edited) Bonjour, Je vois le problème maintenant. Je ne comprenais pas que tu voulais absolument afficher aussi les deux champs dans la liste des produits. Pour faire cela, il te faut : - Corriger l'orthographe de description_shor3 en description_short3 dans product-list - Surcharger la classe Category.php - Surcharger la fonction getProducts - Modifier la fonction getProducts en y ajoutant la sélection de tes 2 champs. Tu auras donc quelque chose comme ceci : $sql = SELECT p.*, pa.`id_product_attribute`, pl.`description`, pl.`description_short`, pl.`description_short2`, pl.`description_short3`, ... Cordialement, Edited June 27, 2012 by dev-prestashop (see edit history) Link to comment Share on other sites More sharing options...
devprestacom Posted June 27, 2012 Share Posted June 27, 2012 (edited) STP, Il faut répondre ici dans le forum Cordialement, Edited June 27, 2012 by dev-prestashop (see edit history) Link to comment Share on other sites More sharing options...
devprestacom Posted June 28, 2012 Share Posted June 28, 2012 Bonsoir, Je reviens pour te dire que j'ai mis tous tes fichiers dans un nouveau prestashop 1.4.7.3 et tout s'affiche bien comme il faut. Les méthodes ont été respectées. Tu aurais un problème de cache et je te conseille alors de faire ceci : - Forcer la compilation de ton prestashop : Dans l'onglet Préférences > Performances (Actives 'forcer la compilation' et désactives 'cache') - Va aussi dans la dossier '\tools\smarty\compile' et supprime tous les fichiers sauf 'index.php' Ça devrait aller. Cordialement, Link to comment Share on other sites More sharing options...
olivierM Posted June 29, 2012 Share Posted June 29, 2012 bonjour, je me retrouve avec un pb équivalent :/ J'ai rajouté un champ dans la table 'product_lang', ce champ ressort bien sur la home (homefeatured) et sur la page produit mais impossible de l'affficher dans product-list.tpl... J'ai modifié le Category.php (en rajoutant mon champ mais si je fais un echo dans la fonctoin getProducts dans Category.php je vois que ce fichier n'est pas appelé sur la listge mais sur la home... Du coup je n'y comprends plus rien... Quand je fais un debug smarty, je vois ma varaible dans la collection scenes mais pas dans la collection produits ??? Avez vous une idée ? merci et désolé d'avoir junké le post... Link to comment Share on other sites More sharing options...
devprestacom Posted June 29, 2012 Share Posted June 29, 2012 Bonsoir olivierM, Rassurez vous que vous avez ajouter votre champs dans le select des produits des catégories. A défaut, passez moi les paramètres de votre site en ligne. Cordialement, Link to comment Share on other sites More sharing options...
olivierM Posted June 30, 2012 Share Posted June 30, 2012 merci pour votre reponse !!! Dans quel fichier se trouve cette SQL ? dans Category.php je l'ai mis mais cette sql n'est pas appelée dans la page category.php... Merci pour vos reponses Link to comment Share on other sites More sharing options...
devprestacom Posted July 2, 2012 Share Posted July 2, 2012 Bonsoir, Ce bug a été corrigé directement sur le site en ligne. Confirmez le et suivez la procédure pour mettre ce sujet comme résolu. Cordialement, Link to comment Share on other sites More sharing options...
devprestacom Posted July 2, 2012 Share Posted July 2, 2012 Bonsoir olivierM, Le sql que vous demandez se trouve dans la méthode getProducts de la classe Category.php. Pensez à la surcharger avant de modifier. Et si vous avez des modules tiers installé comme la navigation à facette, le problème peut provenir de là. Cordialement, Link to comment Share on other sites More sharing options...
Recommended Posts