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

  [Opened] [Résolu] Utilisation de getDisplayValue

Posted by cowa on 01/17/2008 15:29

Hello, j'essaie d'afficher sur une page de visualisation les données d'un enregistrement.

La table principale vehicule est liée par une jointure à d'autres tables annexes (constructeur, modele, etc.)

Pour le cas du constructeur, voici comment je m'y prends pour afficher le nom dans la table liée plutôt que l'identifiant. J'utilise getDisplayValue(id) vu dans le code du plugin formsfulldatas.

Extrait du fichier view_annonce.tpl

 {form $form, 'annonce~vehicule:view'} // Ca, c'est pour initialiser la variable $form avec le formulaire que j'ai chargé précédemment
 
 <?= $t->get('form')->getControl('constructeur_id')->getDisplayValue($t->get('form')->getData('constructeur_id')) ?> // Affiche "MERCEDES" plutôt que 4

Je trouve ça un peu tordu comme façon de faire. :S

  • Y a-t-il une autre façon ?
  • Peut-on faire de même avec une liste de cases à cocher ?

Merci, cowa

  [Opened] Re: Utilisation de getDisplayValue

Reply #1 Posted by laurentj on 01/17/2008 15:49

<?=

ah tiens, un truc de plus qu'il faut que j'interdise dans les templates.. Du php dans les templates, c'est mal.

Y a-t-il une autre façon ?

utiliser le plugin ctrl_value

  {ctrl_value 'constructeur_id'}

ou {ctrl_value} tout court si tu es dans une boucle {formcontrols}. formfulldatas n'étant qu'un raccourci pour :

  <table class="jforms-table" border="0">
  {formcontrols $form}
      <tr><th scope="row">{ctrl_label}</th><td>{ctrl_value}</td></tr>
  {/formcontrols}
  </table>

Note que tu n'a pas besoin d'utiliser {form}

  [Opened] Re: Utilisation de getDisplayValue

Reply #2 Posted by cowa on 01/17/2008 22:04

De plus, il y a 2 petites erreurs dans ta doc

 {form $formulaire}

ne marche pas, il faut écrire

 {form $formulaire, 'annonce~vehicule:view'}

Sinon on a l'erreur

 [error 316] Dans le tag form du template /homepages/5/d225460133/htdocs/jelix/admin/modules/annonce/templates/view_annonce.tpl, nombre d'arguments incorrect (2 attendus)

L'autre erreur (d'orthographe) est là ;)

 Vous avez saisie les valeurs suivantes:

  [Opened] Re: Utilisation de getDisplayValue

Reply #3 Posted by cowa on 01/17/2008 23:06

Bien vu pour le if, j'arrive à faire pareil avec

 {if $form->getData('modele') === null}
   {ctrl_value 'modele'}
 {else}
   {ctrl_value 'modele_id'}
 {/if}

Bien reçu pour les plugins. Merci.

cowa

 
Page
  1. Re: Utilisation de getDisplayValue