developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Opened 13 years ago

Closed 13 years ago

#353 closed enhancement (fixed)

Masquer des champs dans les formulaires

Reported by: e-media Owned by:
Priority: normal Milestone: Jelix 1.0 RC1
Component: jelix:tpl Version: 1.0 beta 3.1
Severity: normal Keywords:
Cc: Blocked By:
Blocking: Documentation needed:
Hosting Provider: Php version:

Description

Il peut être intéressant de ne pas afficher certains champs définis dans le formulaire (XML) et si on a une liste importante de champs il serait pratique de pouvoir passer cette liste (par défaut vide) de la façon suivante (cf ci-dessous). C'est particulièrement intéressant si on a beaucoup de champs à afficher et peu à masquer.

Ce principe trouve tout son sens si on veut utiliser la même définition de formulaire (fichier XML) et avoir un affichage différent pour le formulaire de saisie et le simple formulaire d'affichage.

supposons que l'on ai les champs 'NOM','PRENOM','ADRESSE','CODE_POSTAL','VILLE','DATE_NAISSANCE' on veut tous les saisir et tous les afficher sauf date de naissance.

Aujourd'hui pour tous les saisir on peut faire dans un template :

...
{formcontrols array()}
    <p>{ctrl_label}: {ctrl_control}</p>
{/formcontrols}
...

pour l'affichage on peut faire

...
{formcontrols array('NOM','PRENOM','ADRESSE','CODE_POSTAL','VILLE')}
    <p>{ctrl_label}: {ctrl_control}</p>
{/formcontrols}
...

Une évolution qui pourrait être faite : c'est de passer en paramètre un autre tableau avec la liste des champs à ne pas afficher :

{formcontrols array(),array('DATE_NAISSANCE')}
    <p>{ctrl_label}: {ctrl_control}</p>
{/formcontrols}

Attachments (1)

diff.txt (2.9 KB) - added by e-media 13 years ago.
diff_u4_utf8

Download all attachments as: .zip

Change History (6)

comment:1 Changed 13 years ago by laurentj

Je ne pourrais inclure ce patch en l'état pour les raisons suivantes :

  • il n'est pas au format diff universel (de plus c'est illisible pour moi). Faire un svn diff ou un diff -u4.
  • il serait préférable d'avoir un patch pour le trunk actuel plutôt que sur une "vieille" version.
  • apparemment, tu n'a pas édité le fichier en UTF-8, du coup des caractères ont été perdu (sur le nom des contributeurs)

comment:2 Changed 13 years ago by laurentj

En plus je crois bien que tu as fait le diff dans le mauvais sens (différences entre le nouveau et l'ancien, plutôt que l'ancien et le nouveau)

Changed 13 years ago by e-media

diff_u4_utf8

comment:3 Changed 13 years ago by e-media

J'ai refait le diff en respectant l'ordre ancien nouveau avec l'option -u4 et en utf8 ;-) (dans le trunk les modifications du fichier lib/plugins/tpl/html/block.formcontrols.php datent de 3 mois soit avant la sortie de la v3.1 non ?)

comment:4 Changed 13 years ago by e-media

J'ai téléchargé la nightly SVN 635 et celà donne le même diff -u4 de la v3.1 que j'ai déposé le 30/11 à 14:32

++

comment:5 Changed 13 years ago by laurentj

  • Milestone changed from Jelix 1.1 to Jelix 1.0 RC1
  • Resolution set to fixed
  • Status changed from new to closed

Si le fichier n'a pas changé, il n'y a pas de problème.

Conçernant ton code :

  • ligne 57, c'est ".=" et non "=" qu'il faut mettre
  • le big test : il est mieux d'espacer un peu tout ça, notamment rajouter des espaces entre les opérateurs, et ajouter des passages à la ligne afin que ce soit plus lisible et maintenable

;-)

Patch inclus dans le trunk. Merci pour le patch !

Note: See TracTickets for help on using tickets.