Puis-je masquer des champs ou sections à un utilisateur connecté et inversement ?
Niveau :
Moyen
Version BF minimale requise :
BreezingForms Lite
Compatibilité Joomla! 4/5 :
✅
Si vous le désirez et puisque, lorsque l'utilisateur est connecté, certains champs peuvent ne pas être nécessairement affichés (si on les a p. ex. préremplis à l'aide d'un tutoriel précédent), on peut alors les masquer. Ils ne seront pas visibles, mais seront bien transmis à l'administrateur du site.
Préparez votre formulaire de test comme suit :
- Une page, deux éléments :
- Élément 1 = Nom, nommé nom
- Élément 2 = E-Mail, nommé email
- Cliquez sur l'entête du formulaire en mode d'édition, cliquez sur "Avancé" puis "Plus d'options".
- Dans l'onglet "Scripts", section Scripts d'initialisation, entrez le code suivant et enregistrez :
function ff_Nom_du_formulaire_init() //nom_du_formulaire à remplacer par le nom de votre formulaire
{
<?php
if( JFactory::getUser()->get('id',0) > 0 )
{
echo
"
function mytoggler()
{
bfToggleFields('off', 'element', 'nom', bfDeactivateField);
bfToggleFields('off', 'element', 'email', bfDeactivateField);
}";
}
else
{
echo
"
function mytoggler()
{
bfToggleFields('on', 'element', 'nom', bfDeactivateField);
bfToggleFields('on', 'element', 'email', bfDeactivateField);
}";
}
?>
} // ff_FORMNAME_init
La syntaxe serait bfToggleFields('off', 'section', 'nom_de_section', bfDeactivateField);
si vous vouliez masquer une section. Vous remplacerez bien sûr "nom_de_section" par le nom réel de votre section.
Rendez-vous ensuite dans l'onglet "Pièces de formulaire" et dans la partie 'Après le formulaire", saisissez le code suivant puis enregistrez :
return '
<script type="text/javascript">JQuery(document).ready(function()
{
mytoggler();
});</script>
';
Il faut ensuite initialiser la librairie JS. Sortez de l'édition des options avancées et alors que l'entête de formulaire est active, cliquez "Avancé". Au bas de page, dans la section "Règles de visibilité", ajouter ceci : turn on element mydummy if yourdummy is something
Testez le formulaire ci-dessous !
Connectez-vous pour voir la différence…
Il vous reste, selon votre besoin, à mettre ces fonctions à l'œuvre dans vos formulaires et les personnaliser à votre souhait.
Cet exemple peut parfaitement être combiné aux champs préremplis expliqués dans cet article