Christophe W. Posted September 24, 2012 Share Posted September 24, 2012 (edited) Bonjour à tous, Background: PS 1.5.0.17 J'ai créé un petit module qui enregistre l'id du customer ainsi que l'id de la langue du customer au moment de la création de son compte. Dans le back office, j'ai un controleur qui me liste actuellement la table avec le Customer en question ainsi que sa Langue, jusque là tout va bien. Voici le code du constructeur : public function __construct() { $this->table = 'client'; $this->className = 'Client'; parent :: __construct(); $this->fields_list = array( 'id_client' => array( 'title' => '#' ), 'id_customer' => array( 'title' => $this->module->l('Customer'), 'callback' => 'getCustomerName' ), 'id_lang' => array( 'title' => $this->module->l('Language'), 'callback' => 'getLanguageName' ), ); $this->actions = array('delete'); } Je souhaite ajouter une colonne pour afficher l'email du customer, cet e-mail ne fait pas partie de la table "client". Si j'ai bien compris, le $this->fields_list est "bounded" à l'entité Client donc je ne sais pas rajouter de colonnes supplémentaires via $this->fields_list. Comment faire donc ? Je n'ai jamais utilisé PS auparavant, je teste actuellement les possibilités de dev avec PS pour un projet. Merci d'avance, Christophe Edited September 24, 2012 by ikwattro (see edit history) Link to comment Share on other sites More sharing options...
J. Danse Posted September 24, 2012 Share Posted September 24, 2012 Il est possible d'obtenir des données d'une autre table. Pour ce faire, il faut mettre ce code dans le construct: $this->_join = 'LEFT JOIN '._DB_PREFIX_.'table t ON ((t.`id_data` = a.`id_data`))'; $this->_select = 't.`data_name` AS data_name'; Bien entendu, il faut remplacer le nom de la table, du champ ID et du champ nom par les bons 1 Link to comment Share on other sites More sharing options...
Christophe W. Posted September 24, 2012 Author Share Posted September 24, 2012 Je te remercie grandement. Réponse rapide et fonctionnelle. Bonne journée à toi. 1 Link to comment Share on other sites More sharing options...
J. Danse Posted September 24, 2012 Share Posted September 24, 2012 N'oublies pas d'indiquer le sujet en résolu, ainsi ! Link to comment Share on other sites More sharing options...
Christophe W. Posted September 24, 2012 Author Share Posted September 24, 2012 Ainsi ? Je ne vois pas d'option "mettre en résolu", ni même en éditant mon premier post. Link to comment Share on other sites More sharing options...
J. Danse Posted September 24, 2012 Share Posted September 24, 2012 Le ainsi était une ponctuation de ma phrase, désolé. Oui, en éditant le premier post, il faut éditer le titre du sujet. Il n'existe - malheureusement - pas de bouton pour. Link to comment Share on other sites More sharing options...
Christophe W. Posted September 24, 2012 Author Share Posted September 24, 2012 Ah ok, willdo. Merci. Link to comment Share on other sites More sharing options...
RaPhiuS Posted February 20, 2013 Share Posted February 20, 2013 (edited) Merci J.Danse, je viens de relire ta reponse et j'ai pu fixer exactement la meme situation. Cependant, est-ce propre d'utiliser les variables $_join, $_select, $_where, ... d'AdminController (meme si elles sont protected) pour gerer des requetes exceptionnelles afin de recuperer des valeurs dans d'autres tables pour les integrer dans un $fields_list plutot que de tout reecrire en utilisant nous meme notre template. Cela est-il indique ou meme dans une certaine mesure portable? Dans tous les cas, merci pour ce tuyaux, ca a parfaitement fait l'affaire! Cordialement, RaPhiuS Edited February 20, 2013 by RaPhiuS (see edit history) 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