Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Modifier la liste générée par le crud

Posted by YvesTan on 03/05/2008 21:25

Salut à tous,

Pour afficher les "vraies" valeurs des clés étrangères à la place de la clé dans une liste en utilisant jControllerDaoCrud, il faut refaire complètement la méthode index ou y a t'il une autre solution ?

Merci ++

Edit : c'est un peu la même question que le message suivant mais ;) ...

  [Opened] Re: Modifier la liste générée par le crud

Reply #1 Posted by lipki on 03/05/2008 21:56

Exemple pour une table d'adresses liée a un table de pays.

table adresses :

 | id_a | rue_a | cp_a | ville_a | pays_a |

table pays :

 | id_p | pays_p |

Tu peut utiliser ton dao pour ramener les champs des tables lier par un id a ta table principal. :

 <datasources>
    <primarytable name="adresses" primarykey="id_a" />
    <optionalforeigntable name="pays" primarykey="id_p" onforeignkey="pays_a" />
 </datasources>

 <record>
    <property name="id_a" datatype="autoincrement"/>
    <property name="rue_a" (...)/>
    <property name="cp_a" (...)/>
    <property name="ville_a" (...)/>
    <property name="pays_a" (...)/>
    
    <property name="id_p" datatype="autoincrement" table="pays"/>
    <property name="pays_p" (...) table="pays"/>
 </record>

Voir la doc pour optionalforeigntable.
Ensuite tu te retrouve avec trop de champs, il faut faire le tri, avec $propertiesForList une propriétés de jControllerDaoCrud

 public $propertiesForList = array(
    'id_a',
    'rue_a',
    'cp_a',
    'ville_a',
    'pays_p',
 );

a toi d'adapter selon tes besoins.

  [Opened] Re: Modifier la liste générée par le crud

Reply #2 Posted by lipki on 03/06/2008 14:12

Regarde mieux la doc :)

alors reprenons pour la table adresses :

 | id_adresses | rue_adresses | cp_adresses | ville_adresses | pays_adresses |

Dans le dao :

 <property 
  fieldname="cp_adresses"     /* nom du champ  */
  name="cp"                   /* nom simplifié */
  (...) />

et dans le form :

 <input ref="cp">             /* nom simplifié du dao */
  <label>Code postal</label>  /* label affiché dans le formulaire */
 </input>

Tu n'a pas besoin d'autres choses.

ref : daos
ref : forms

  [Opened] Re: Modifier la liste générée par le crud

Reply #3 Posted by lipki on 03/06/2008 18:36

ne le met pas dans le formulaire, si tu ne veut pas li voir.

  [Opened] Re: Modifier la liste générée par le crud

Reply #4 Posted by lipki on 03/06/2008 20:44

Si tu ne veut pas de l'identifiant dans le formulaire, il suffit de ne pas le mettre dans ton fichier xx.form.xml.

Ensuite dans ton template.

 {form $form, $action, array('id'=>$id)}
   <thead>
     <tr>
       {formcontrols}
         <th>{ctrl_label}{ctrl_control}</th>
       {/formcontrols}
         <th>&nbsp;</th>
     </tr>
   </thead>
   {formsubmit}
 {/form}

A tu regarder comment on affiche un formulaire.

  [Opened] Re: Modifier la liste générée par le crud

Reply #5 Posted by lipki on 03/06/2008 22:43

Tu est clair, est pour ce que tu demande ta solution convient parfaitement.

Mais je ne comprend pas pourquoi tu ne veut pas utiliser les balises label de jForm, qui sont fait pour ça.

Tu sait que tu peut faire plusierus fichier form, un pour la list, un pour l'édition, un pour la vue.

Sinon autres choses, si tu veut un crud avancé, tu peut aller voir le miens. http://jelix.toopi.info/page/cruds

Il n'est pas fini, mais partir de mes sources t'enlèvera une épine du pied.

  [Opened] Re: Modifier la liste générée par le crud

Reply #6 Posted by lipki on 03/07/2008 10:19

pour chaque table tu peut avoir plusieurs fichiers daos et fichiers forms, de même que chaque fichier form ou fichier dao peut être lier a plusieurs table.

Un formulaire qui demande seulement le mot de passe et le login, lier a un dao (table utilisateur) qui ne récupère que le mot de passe et le login (de la table utilisateur).

Un formulaire qui permet de mettre a jour sont nom, lier a un dao (table utilisateur) qui ne récupère que le champ 'nom' (de la table utilisateur).

Tu comprend ?

  [Opened] Re: Modifier la liste générée par le crud

Reply #7 Posted by YvesTan on 03/07/2008 17:04

Oui je vois bien qu'il est possible d'avoir plusieurs DAO, form ... pour une table. Ceci étant, je ne pense pas que ça conviennent à ce que j'ai besoin.

par contre, ton "cruds modifié" est assez intéressant ;)

Merci ++

  [Opened] Re: Modifier la liste générée par le crud

Reply #8 Posted by lipki on 03/10/2008 10:30

cool, si tu fait de modifs, préviens moi.

 
Page
  1. Modifier la liste générée par le crud