Alexenn Posted January 15, 2016 Share Posted January 15, 2016 (edited) Bonjour à tous, je me met depuis récemment à la création d'un site web, j'ai donc choisit d'utiliser prestashop tout en ayant à l'idée de modifier certains modules et aspects de la solution. J'aurais donc une question sûrement triviale pour certains, j'ai une base de donnée possédant une liste d'articles et j'aurais aimer pouvoir y accéder en backend via l'onglet Catalogue > Produit, pour dans un premier temps au moins voir apparaître la liste de tout mes produits. Je sais qu'il faudrait que je modifie cette requête : SELECT a.`id_product`, b.`name` AS `name`, `reference`, a.`price` AS `price`, sa.`active` AS `active` , shop.`name` AS `shopname`, a.`id_shop_default`, image_shop.`id_image` AS `id_image`, cl.`name` AS `name_category`, sa.`price`, 0 AS `price_final`, a.`is_virtual`, pd.`nb_downloadable`, sav.`quantity` AS `sav_quantity`, sa.`active`, IF(sav.`quantity`<=0, 1, 0) AS `badge_danger` FROM `ps_product` a LEFT JOIN `ps_product_lang` b ON (b.`id_product` = a.`id_product` AND b.`id_lang` = 1 AND b.`id_shop` = 1) LEFT JOIN `ps_stock_available` sav ON (sav.`id_product` = a.`id_product` AND sav.`id_product_attribute` = 0 AND sav.id_shop = 1 AND sav.id_shop_group = 0 ) JOIN `ps_product_shop` sa ON (a.`id_product` = sa.`id_product` AND sa.id_shop = a.id_shop_default) LEFT JOIN `ps_category_lang` cl ON (sa.`id_category_default` = cl.`id_category` AND b.`id_lang` = cl.`id_lang` AND cl.id_shop = a.id_shop_default) LEFT JOIN `ps_shop` shop ON (shop.id_shop = a.id_shop_default) LEFT JOIN `ps_image_shop` image_shop ON (image_shop.`id_product` = a.`id_product` AND image_shop.`cover` = 1 AND image_shop.id_shop = a.id_shop_default) LEFT JOIN `ps_image` i ON (i.`id_image` = image_shop.`id_image`) LEFT JOIN `ps_product_download` pd ON (pd.`id_product` = a.`id_product`) WHERE 1 ORDER BY a.`id_product` ASC Cependant j'ai des difficultés pour retrouver le code gérant ce module, si quelqu'un connaissant l'architecture du site pourrait m'éclairer ce serait super Merci d'avance Edited January 15, 2016 by Alexenn (see edit history) Link to comment Share on other sites More sharing options...
Alexenn Posted January 18, 2016 Author Share Posted January 18, 2016 Il semblerait que la requête soit forgée dans AdminProductsController, néanmoins je n'arrive pas à voir où est appelée la connexion à la base, ainsi que l'instanciation de cette classe. Quelqu'un a une idée ? Link to comment Share on other sites More sharing options...
coeos.pro Posted January 18, 2016 Share Posted January 18, 2016 https://github.com/PrestaShop/PrestaShop/blob/develop/controllers/admin/AdminProductsController.php ligne 180 environ Link to comment Share on other sites More sharing options...
Alexenn Posted January 18, 2016 Author Share Posted January 18, 2016 (edited) Merci de m'avoir répondu. Effectivement j'étais tombé là dessus et ce qu'il m'a fait dire que la requête était forgée dans ce fichier, en fait c'est l'étape précédent ceci que je n'arrive pas a retrouver, l'endroit où est instanciée cette classe, qui appel le constructeur et finira par forger cette requête. Edited January 18, 2016 by Alexenn (see edit history) Link to comment Share on other sites More sharing options...
Alexenn Posted January 19, 2016 Author Share Posted January 19, 2016 Link to comment Share on other sites More sharing options...
coeos.pro Posted January 19, 2016 Share Posted January 19, 2016 en fait c'est l'étape précédent ceci que je n'arrive pas a retrouver, l'endroit où est instanciée cette classe, qui appel le constructeur et finira par forger cette requête. j'ai pas trop compris pourquoi tu cherches ça Link to comment Share on other sites More sharing options...
Alexenn Posted January 19, 2016 Author Share Posted January 19, 2016 En fait j'aurais aimé retrouver la connexion à la bdd et la changer avant l'instanciation d'adminProductsController, ou bien créer une nouvelle connexion à ma bdd remplie avec les données de nos fournisseurs, et ainsi afficher tout les produits dans le back office sans devoir les importer dans la base principale de prestashop. Link to comment Share on other sites More sharing options...
Cobs Posted January 19, 2016 Share Posted January 19, 2016 La connexion à la BDD se fait toujours dans Db::getInstance() fichier : prestashop/classes/db/Db.php 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