Roopix Posted June 3, 2010 Share Posted June 3, 2010 Bonjour à tous,Je début actuellement sur le développement de module pour Prestashop, et après plusieurs heures de recherches, je n'ai pas trouvé de documentation complète sur "l'API de Prestashop".J'ai cependant trouvé quelques informations sur Db, Configuration et Tools.Dans mon module, j'aimerai pouvoir, à l'installation, créer une nouvelle catégorie directement dans le code.Je pourrais faire un INSERT INTO dans la base, tout simplement, mais j'imagine qu'il y a des relations et des dépendances entre les tables, ce qui risque d'inclure des incohérences dans les données.Ma question est donc la suivante : Existe-t-il une/des classe(s) de service comme (Categorie::ajouter() par exemple) qui permettrait d'ajouter, modifier, supprimer des données dans la base, tout en gardant une cohérence dans les données ?D'avance merci pour vos réponses!Bonne journée.Roopix Link to comment Share on other sites More sharing options...
Cédric Posted June 3, 2010 Share Posted June 3, 2010 il y a Category::add($autodate = true, $nullValues = false); Mais c'est pas une méthode statique et puis il semble qu'il y ait quelques incohérences, enfin quand disons plutôt que je sais pas comment ca marche. En théorie,on devrait instancier un objet Category, remplir les propriétés et faire add();Seulement, je vois pas trop comment gérer la langue pour le nom et la description.Si y'a d'autres avis !Regarder comment c'est fait dans la partie admin, ou le faire à la main en sql.Cela touche category, category_lang... ne pas oublier de mettre une image au passage.@++ Link to comment Share on other sites More sharing options...
Roopix Posted June 3, 2010 Author Share Posted June 3, 2010 Merci pour ta réponse Cédric, ça m'a donné quelques pistes et j'ai donc essayer avec la méthode add().J'ai donc quelque chose comme : $cat = new Category(); $cat->id_parent = 1; $cat->name = array("1" => "NomEn", "2" => "NomFr"); $cat->description = array("1" => "DescrEn", "2" => "DescrFr"); $cat->link_rewrite = array("1" => "nomUrlRewrite", "2" => "nomUrlRewrite"); if($cat->add()) $id = Db::getInstance()->Insert_ID(); MAIS, nouveau problème !Sur la dernière ligne, j'aimerai récupérer l'identifiant auto incrémenté par la méthode add() et c'est normalement la méthode Insert_ID qui devrait me retourner la bonne valeur.Or, j'ai fais des test en affichant le dernier identifiant et pour une seule insertion de catégorie, j'ai 6 identifiants !!!!! Dont plusieurs, et notamment le dernier (celui que je récupère) qui sont égaux à 0 !Comment faire pour récupérer uniquement mon dernier identifiant dans la table catégorie, et à quoi correspondent les autres ?Merci d'avance Link to comment Share on other sites More sharing options...
Roopix Posted June 7, 2010 Author Share Posted June 7, 2010 Et bien je vais me répondre moi même, j'ai trouvé la réponse à mon problème :Lorsque l'on fait un ajout via la méthode add() l'identifiant du nouvel élément en base prend la valeur de son attribut directement dans l'objet concerné. Simple et efficace.Merci à Cédric pour ses informations ! :coolsmile: 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