Jump to content

[Résolu] PS1.5 - Module perso - BO Controller - Rajouter des colonnes supplémentaires


Recommended Posts

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 by ikwattro (see edit history)
Link to comment
Share on other sites

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 :)

  • Like 1
Link to comment
Share on other sites

  • 4 months later...

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 by RaPhiuS (see edit history)
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...