olo Posted December 29, 2012 Share Posted December 29, 2012 Bonjour, à tous, Je tente de créer un module. Comme je débute je demarre de : http://www.prestarocket.com/blog/creer-module-mvc-prestashop-1-5/ J'ai téléchargé le module en question et fait mes modifications. Concernant l'arbo : +--oloproductplayer |oloproductplayer.php |views +... |models +--Oloplayer.php |controllers |admin +... +--adminoloplayer.php J'ai une table : ps_oloplayer adminoloplayer.php : <?php class AdminOloplayerController extends ModuleAdminController { public function __construct() { $this->table = 'oloplayer'; $this->className = 'Oloplayer'; parent :: __construct(); $this->fields_list = array( 'id_mp3' => array( 'title' => '#' ), 'id_product' => array( 'title' => $this->module->l('Product') ), 'title' => array( 'title' => $this->module->l('link Track') ), 'active' => array( 'title' => $this->module->l('Valider'), 'active' => 'status' ) ); $this->actions = array('delete'); } } Dans le model Oloplayer.php <?php class Oloplayer extends ObjectModel { public $id_mp3; public $id_product; public $title; public $url; public $active; public static $definition = array( 'table' => 'oloplayer', 'primary' => 'id_mp3', 'multilang' => false, 'fields' => array( 'id_mp3' => array( 'type' => ObjectModel :: TYPE_INT ), 'id_product' => array( 'type' => ObjectModel :: TYPE_INT, 'required' => true ), 'title' => array( 'type' => ObjectModel :: TYPE_STRING, 'required' => true ), 'active' => array( 'type' => ObjectModel :: TYPE_BOOL, 'required' => true ) ), ); } Pourtant cela ne fonctionne pas. j'ai l'entête et footer du back office au milieu : blanc. Pire si je met une table ps_opinion et que je modifie dans l'adminoloplayer : $this->table = 'oloplayer'; en $this->table = 'opinion; là je retrouve bien la liste modifiable du tuto. Quelqu'un peu m'aider ? Link to comment Share on other sites More sharing options...
Broceliande Posted December 31, 2012 Share Posted December 31, 2012 le problème à mon sens (sans avoir fouillé non plus hein , juste à la lecture de ton code) c'est que tu fais référence dans ton admintab à $this->module Qui n'est définit nulle part dans ta classe . Si ton module est nommé oloplayer alors essaye juste d'ajouter ça dans le constructeur de ton controller admin : $this->table = 'oloplayer'; $this->className = 'Oloplayer'; $this->module = 'oloplayer'; ... Link to comment Share on other sites More sharing options...
olo Posted December 31, 2012 Author Share Posted December 31, 2012 Bonjour, Merci d'avoir répondu, entre temps j'ai trouvé je pense la solution. Après plusieurs test, je me suis rendu compte que le problème venait du lien entre la base et le module. public static $definition = array( 'table' => 'oloplayer', 'primary' => 'id_mp3', Je suis arrivée à la conclusion suivante : il faut respecter une convention de nommage : 'primary' => 'id_nom de la table' Ainsi : cela fonctionne avec id_oloplayer. J'espère que cela aidera les débutants comme moi. 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