Salut,
J’ai une question qui parait vraiment toute simple… mais je n’ai pas trouvé de réponse…
J’utilise le composant WebFM et celui-ci affiche sous le Treeview, un formulaire HTML destiné au transfert de fichiers…
Je cherche, à cacher ce formulaire, en fonction de certains critères (le répertoire du Treeview dans lequel se trouve le User par exemple)…
Comme Firefox m’indique l’ID de la form (id=»webfm-upload-fieldset)… je pensais tout simplement me débarrasser du problème avec un coup de JQuery mais je n’y arrive pas…
Quel est le meilleur moyen de faire ce que je cherche à faire d’après vous ?
Cédric
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Pour moi quand tu cache un champ via le css ou jquery c est pas la solution.alors ce que je fait dans mes projets drupal c est que j ai toujours un module qui me sert a ce genre de chose.Tu cree ton module et dedans tu met un form_alter puis tu attrape le tableau qui t affiche ce formulaire et tu unset l entrée qui correspond au champ que tu veut virer et il ne sera plus dans ton formulaire et la tu t en sera vraiment debarasser surtout que la tu veut l afficher suivant des condition donc passe par cette solution.C est un peu de php mais je pense que c est la meilleur facon de faire.
MOMO Drupal en force
mbehmane
866
Merci Momo,
En fait, je suis pas très familiarisé avec Form_Alter…
Tu veux dire 1 seul module dédié à la gestion de l’affichage/cache des éléments de tous tes autres modules ?
mais tu ferais comment avec le code ci-dessous dans ton FORM_ALTER ?
car je cherche à faire disparaître ce formulaire qui n’est ni encadré dans un DIV ni dans une TABLE…
<form enctype="multipart/form-data" id="webfm-upload-fieldset" method="post" accept-charset="UTF-8" action="/crashtestprod/?q=node/32"><div><input type="hidden" value="form-dc3fbfcc04fa278aa27f01e39cef715a" id="form-dc3fbfcc04fa278aa27f01e39cef715a" name="form_build_id">
<input type="hidden" value="2c3f46eb090d34585a7f0997f9a7c46c" id="edit-webfm-upload-fieldset-form-token" name="form_token">
<input type="hidden" value="webfm_upload_fieldset" id="edit-webfm-upload-fieldset" name="form_id">
<div class="attachments"><fieldset class=" collapsible collapsed"><legend class="collapse-processed"><a href="#">Transférer un Fichier</a></legend><div class="fieldset-wrapper"><div class="description">Uploaded file will be saved to the current directory.</div><div id="wfmatt-wrapper"><div id="wfmatt-hide"><div id="edit-webfm-upload-wrapper" class="form-item">
<label for="edit-webfm-upload">Téléverser le fichier : </label>
<input type="file" size="40" id="edit-webfm-upload" class="form-file" name="files[webfm_upload]">
</div>
<input type="submit" class="form-submit" value="Transfert de fichiers" id="wfmatt-button" name="attach">
</div><input type="hidden" value="/crashtest/node-32/files" id="edit-webfmuploadpath" name="webfmuploadpath">
<input type="hidden" class="webfmupload" value="http://127.0.0.1/crashtestprod/?q=webfm/upload" id="edit-wfmatt-url" name="wfmatt-url">
</div></div></fieldset>
</div>
</div>
</form>
Cédric
cedico
76
non tu doit passer via le code.Au fait tout les formulaire que tu voit dans drupal sont construit via l API form de drupal en php.C ‘est un tableau qui represente un formulaire.
Form alter est une methode php de drupal qui te permet d intercepter le formulaire ke tu veut et d en faire ce ke tu veut.C’est pour ca que je te dit qu il faut que tu créer ton propre module que tu appelle par exemple utility
Comment faire ?
tu crée un dossier utility que tu place dans le dossier contenat tes module
et dedant tu met un fichier utility.module et un utility.info(dans ce ficheir tu met :
name = utility
description = Module utilitaire de mon projet
package = Utiles
core = 6.x
version = 1.0
Ensuite tu va activer ton module dans l admin qui est dans admin/build/modules
puis dans le fichier utility.module tu met une fonction php comme ci dessous
function utility_form_alter( &$form, $form_state, $form_id ) {
// ici tu met un print_r($form) ; //Ca te permet de voir les formulaire de la page en cours
}
donc regarde la fonction tu met le print_r et tu va sur la page en question et tu unset de ton tableau le champ que tu veut plus.
Tu virera le print_r selon tes condition si tu en a en mettant des if la ou il te faut.Tu verra ensuite comme l entrée du tableau n existe plus et que drupal se sert de ce tableau pour te construire ce formulaire, ton champ indesirable ne sera plus la.
Repost si tu a un pb.
MOMO Drupal en force
mbehmane
866
Je crois que je commence à voir le principe…
Je vais potasser un peu tout ça pour que ça entre :-)
Merci !
Cédric
cedico
76