ingrid066 Posted July 11, 2011 Share Posted July 11, 2011 Bonjour,Je suis nouvelle sur prestashop et j'aurais besoin d'un petit peu d'aide.Je suis en train de créer un module qui permet d'afficher un produit en fonction de son nom(pas par catégorie juste par rapport au nom sachant que tous les produits sont dans la même catégorie). Mon but est de permettre à certain client(en rajoutant ce module) de voir certain produit.Alors mon module comporte un fichier php et un tpl(c'est évident) je ne sais pas quel bout de code rajouter et dans quel fichier. Tous ce que j'ai essayé n'a pas marché car je pense que je dois faire appelle aux fichiers product.php, product-list etcToutes aides seraient la bienvenue.Merci d'avance à ceux qui prendront le temps de me lire et me repondre. Link to comment Share on other sites More sharing options...
Erkagon Posted July 11, 2011 Share Posted July 11, 2011 Bonjour,J'ai le même problème, cela fait plus de 4 jours que j'ai posté et toujours pas de réponse.Ce que j'ai vu, c'est que prestashop gère l'affichage des produits soit par l'id_category soit par l'id_product.J'ai donc essayer de copier le contenu de product.php dans ma nouvelle_page.php (bien sûr en enlevant les headers, footer en trop) et de copier le tpl nécessaire à l'affichage des produits. Celui-ci me marque alors erreur produit manquant. Donc j'ai rajouté dans mon URL, nouvelle_page.php?id_product=4, et la ça m'affiche bien le produit sauf qu'on ne peut en afficher qu'un seul à la fois.Il faudrait alors trouver une solution pour lui indiquer l'id_product sans modification de l'url.La seul chose que j'ai réussi à faire sans modification d'URL, c'est d'aller prendre des données directement dans la base de donnée.C'est vrai qu'un petit up serai la bienvenue .Merci d’avance à ceux qui prendront le temps de nous lire et nous répondre. Link to comment Share on other sites More sharing options...
ingrid066 Posted July 11, 2011 Author Share Posted July 11, 2011 Merci de ton message. Pourrais tu partager ton code? Surtout que t’arrive à récupérer des informations des produits dans le base de donnée(donc je pense que t'arrives à récupérer le nom)En tout cas ,ce que tas déjà fait pourrait beaucoup m'aider à essayer de trouver une solution à notre problème.Notamment tu arrives à afficher des produits en spécifiant l'url(si on arrive à mettre une variable dans l'url ca pourrait être une solution non?)Si j'ai bien compris tu es en train de créer un module(comme moi) vu que tu copie le code php et non tu le modifie directement dans les fichiers de base de prestashop.Ton aide pourrais mettre précieuse. Link to comment Share on other sites More sharing options...
Vincent Decaux Posted July 11, 2011 Share Posted July 11, 2011 Hmm, à priori vous partez de loin niveau technique, donc ça va être assez difficile de vous aider.Par contre, je n'ai pas compris la demande ? C'est recoder la fonction recherche de Prestashop ? Link to comment Share on other sites More sharing options...
ingrid066 Posted July 11, 2011 Author Share Posted July 11, 2011 en tout cas pour moi non. Je veux juste afficher un produit en fonction de son nom.Je m'explique chaque utilisateur à un produit à son nom et je veux qu'il puisse accéder directement(par un lien dans son compte utilisateur qui point sur une nouvelle page(déja codé) à son produit(pas réussi à faire)) Link to comment Share on other sites More sharing options...
Vincent Decaux Posted July 11, 2011 Share Posted July 11, 2011 function getProductByName($name) { return Db::getInstance()->getRow(' SELECT p.*, pl.* , CONCAT( p.`id_product`,"-",i.`id_image`) AS image_id FROM `'._DB_PREFIX_.'product` p LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.intval($cookie->id_lang).') LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1) WHERE p.`active` = 1 AND LOWER(pl.name) = "'.strtolower($name).'" LIMIT 1'); } $product = getProductName('ipod'); echo Link::getProductLink($product['id_product'], $product['link_rewrite']); Après, tu ne veux pas le faire aller sur la page du produit ? c'est sur une autre page ?Concrètement, cette fonction te permet d'obtenir le produit qui porte le nom que tu veux. Je t'ai mis "l'astuce" pour avoir le lien correct du produit. Tu peux faire directement un href avec ce lien.Si c'est la recherche ? Link to comment Share on other sites More sharing options...
ingrid066 Posted July 11, 2011 Author Share Posted July 11, 2011 merci beaucoup. le produit est affiché dans une nouvelle page. Mais même s'il ne va sur la page du produit par une redirection ça ne me dérange pas. L'importance était que je puisse afficher un produit en fonction du nom de la personne connectée.Merci beaucoup Link to comment Share on other sites More sharing options...
ingrid066 Posted July 12, 2011 Author Share Posted July 12, 2011 function getProductByName($name) { return Db::getInstance()->getRow(' SELECT p.*, pl.* , CONCAT( p.`id_product`,"-",i.`id_image`) AS image_id FROM `'._DB_PREFIX_.'product` p LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.intval($cookie->id_lang).') LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1) WHERE p.`active` = 1 AND LOWER(pl.name) = "'.strtolower($name).'" LIMIT 1'); } $product = getProductByName('ipod'); echo Link::getProductLink($product['id_product'], $product['link_rewrite']); j'ai donc mis ce bout de code dans ma page php(qui contient seulement cette fonction pour le moment) de mon module et je ne comprend pas pourquoi quelque soit le nom du produit que je met(ipod_nano, Ipod Nano etc) j'ai sur ma page en FO lurl du produit mais avec un id toujours égal à 0(id=0)(je suis sur que le produit existe bien dans ma base de donnée) est ce que quelqu'un voit où est l'erreur??merci d'avance Link to comment Share on other sites More sharing options...
ingrid066 Posted July 12, 2011 Author Share Posted July 12, 2011 personne ne voit pourquoi l'id du produit reste toujours à 0 ?merci Link to comment Share on other sites More sharing options...
ingrid066 Posted July 13, 2011 Author Share Posted July 13, 2011 J'ai cherché pendant 2 jours pourquoi ça ne marche pas. J'ai vraiment besoin d'aide.Maintenant je suis extrêmement curieuse de savoir où est le problème.J'aurais quelques questions par rapport au code:-comment savoir si on met p, pl, i etc ?-à quoi ça correspond?-où je peux trouver un tuto prestashop avec la manière d’écrire une requête(structure)?Merci Link to comment Share on other sites More sharing options...
Vincent Decaux Posted July 13, 2011 Share Posted July 13, 2011 C'est du MySQL, tu peux commencer directement ici :http://www.siteduzero.com/tutoriel-3-14488-presentation-des-bases-de-donnees.html#ss_part_1Ce n'est pas Prestashop ici, mais du développement pur. Ensuite, tu as une unique fonction dans ton .php du module ? As-tu regardé les autres modules, voir comment ils sont construits ?Comment transmets-tu tes informations du .php à ton FO ? Il n'y a rien de méchant, mais tu pars de très loin, et tu vas perdre beaucoup de temps. Tu peux demander une micro-intervention d'un développeur sur le forum "Appels d'offre et prestations". Link to comment Share on other sites More sharing options...
ingrid066 Posted July 13, 2011 Author Share Posted July 13, 2011 Merci de ta reponse je vais bien regarder ton lien mais j'ai déjà les bases en MySQL. Je comprend bien le code qu'il m'a été donné mais je ne trouve pas l'erreur(:s).Pour ce qui est de mon module il est très basique voici son architecture:nom du moduleClasses comprenant un .php(je souhaite qui réalise une redirection vers le produit. Contient juste la fonction donné dans le post).un .php(installation, hook, configuration , désinstaller)un .tpl (affiche un lien cliquable à l'endroit du Hook avec une petite image qui fait une redirection vers le php du dossier classes)une image.J'aimerais juste savoir pourquoi j'ai toujours un id=0 avec le code qu'il ma été donné parce que je ne vois aucune erreur moi.merci 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