msevestre Posted September 21, 2011 Share Posted September 21, 2011 Bonsoir je commence tout juste avec prestashop. J'ai des connaissances en prog C, donc côté algorithmie, pas de soucis. Par contre j'ai des lacunes côté dev javascript et accès aux bases de données. Mon problème : dans ajax-cart.js, je souhaite modifier un comportement qui nécessite d'aller consulter la base de données. La fonction de ajax-cart modifiée sera "add" (add : function(idProduct, idCombination, addedFromProductPage, callerElement, quantity, whishlist)). Je veux consulter la table ps_cart_product qui contient la liste des éléments actuellement dans le panier. Quelle fonction/requête faire pour accéder à ps_cart_product (pour par exemple en tirer les produit présents (id_product)) dans cette fonction "add" ? PS: je suis sous PS 1.4.4.1 Merci Matt Link to comment Share on other sites More sharing options...
virtualgadjo Posted September 21, 2011 Share Posted September 21, 2011 hello, premier élément de réponse qui a son importance, tu ne consulteras pas la base avec js... à moins de bosser sur un hébergement fonctionnant avec node.js ou équivalent, js travaille côté client (machine utilisateur) donc, tu as deux possibilités - surcharger le ou les controleurs qui vont chercher les données dont tu as besoin pour qu'il te le livre dans la page (ou un fichier json). Si dans la page, tu peux ensuite mettre tout ça dans des tableaux ou objets (façon json) javascript que tu pourras ensuite manipuler à ta guise - soit créer une page avec son contrôleur que tu attaques en ajax, pour le coup avec js, pour manipuler et afficher ce que tu veux dans les deux cas, les données seront en tout cas extraites de la base en php et ensuite mises dans un format manipulable pas js (pour t'en donner une idée, regarde dans product.tpl comment les données $combinations sont manipulées en js et permettent d'updater le prix en fonction de la valeur d'une caractéristique (feature pour ps)) have swing Link to comment Share on other sites More sharing options...
msevestre Posted September 21, 2011 Author Share Posted September 21, 2011 Hello Ok effectivement, je suis à côté Je vais regarder dans product.tpl comme tu me le propose Matt Link to comment Share on other sites More sharing options...
msevestre Posted September 21, 2011 Author Share Posted September 21, 2011 Hello tu parles du product.tpl dans themes/prestashop ? Tout ce que j'ai c'est ce code : // Combinations {foreach from=$combinations key=idCombination item=combination} addCombination({$idCombination|intval}, new Array({$combination.list}), {$combination.quantity}, {$combination.price}, {$combination.ecotax}, {$combination.id_image}, '{$combination.reference|addslashes}', {$combination.unit_impact}, {$combination.minimal_quantity}); {/foreach} // Colors {if $colors|@count > 0} {if $product->id_color_default}var id_color_default = {$product->id_color_default|intval};{/if} {/if} Et j'y comprend pas grand chose Matt Link to comment Share on other sites More sharing options...
virtualgadjo Posted September 22, 2011 Share Posted September 22, 2011 hello, en fait, je parlais de product.tpl pour ce qui se passe en haut du template, tu peux y voir la façon dont ps manipule des données, récupérées en php puis inscrites dans des variables javascript avec smarty. Seul truc c'est que, évidemment, du coup, le js en question se trouve dans la page, au moins les tableaux et variables instanciées. Ensuite, la partie manipulation au click pour changer à la volée l'affichage du prix et autres joyeusetés dans cette même page se trouve dans product.js (regarde par ex la fonction updatedisplay garde juste à l'esprit que cette façon de procéder ne peu fonctionner que sur les évènements js postérieurs à load pour window et, a fortiori, domready/document ready (click sur un élément ou autre change d'un input par ex) si, pour ce que tu veux faire, js doit intervenir sur le load ou le domready, tes fonctions doivent se trouver après l'instanciation des variables pour les avoir dispo au moment de s'exécuter et devront donc être aussi dans la page ou, au moins dans une feuille appelée sous l'apparition des variables en question have swing 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