143 Posts
Stef
10 years ago
2
Topic

Bonjour,

J'ai un content type pour des formation. 

Un des champs est: Intra-Entreprise : Oui/Non

J'aimerais qu'un second champ n'apparaisse sur le content type (pas le formulaire où j'aurais pu utiliser le "5" pour régler ce problème) que si Intra-Entreprise est sur "Oui".

Une suggestion ?

Get a Book for SEBLOD
10 years ago
1
Level 1

Bonjour Stef,

Pour conditionner l'affichage d'un champ en fonction de la valeur d'un autre, tu as deux possibilités :

  1. tu agis sur le formulaire en utilisant la fonctionnalité des états conditionnels :
    1. Tu clique sur le bouton "5" de la vue "formulaire site"
    2. Tu cliques sur "Add" au niveau du champs pour lequel tu souhaites conditionner l'affichage
    3. Tu configures l'état conditionnel comme suit
      L'objectif est que si tu sélectionne l'option "Non", le champs que tu souhaites cacher dans la vue "contenu" ne contient pas de valeur. Ainsi le template "seb_one" ou "seb_minima" n'affiche pas le champs sans que tu n'ai besoin de faire quoi que ce soit.
  2. tu mes en place un override de la position qui contient le champs que tu souhaites afficher. Supposons que c'est la position "mainbody" du template "seb_one".
    Tu créé un fichier "mainbody.php" dans le réperoire "templates/seb_one/positions/nom_type_contenu/content/"
    Entre autres choses dans ce fichier tu mes le code suivant :
if ( $cck->getValue( 'nom_champs_intra_entreprise' ) == '1' ) {
   echo $cck->renderField( 'nom_champs_que_tu_souhaites_afficher' );
}

Cordialement,
Mehdi.

143 Posts
Stef
10 years ago
0
Level 2

Bonjour Mehdi,

merci beaucoup pour ces deux suggestion. 

Comme je n'ai pas encore eu le temps de me pencher sur les overrides (et que j'avoue être un peu à la bourre :¬p), je vais utiliser la première solution qui est parfaitement adaptée à mes besoins... et fonctionne !

Get a Book for SEBLOD