Message d'avertissement

The subscription service is currently unavailable. Please try again later.

[Résolu] fusion de formulaire

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Je veux fusionner deux formulaires en un seul ((1) formulaire d'inscription + (2) un autre formulaire que j'ai créé) je veux que ce nouveau formulaire s'affiche quand l'utilisateur n'est pas connecté ou n'est pas inscrit sinon il affiche (2)

Comment je dois procèder?

Merci d'avance pour votre aide

Forum : 
Version de Drupal : 
Tags : 

Tu devrai plutot utiliser le module profile et oublier ton autre formulaire.Et tu ajoute au formilaire d inscription tes champ que tu a mis dans l autre(ca marche comme cck mais pour le formulaire d inscription).

C est fait pour ca.

merci pour votre réponse

mon pb est que j'ai besoin de l'autre formulaire quand l'utilisateur est connecté

et ça devrait être dans la même table pour que je puisse faire des requêtes de recherche.

est ce que je dois programmer ça? il n' y a pas de solution au niveau cms?

c est pas tres clair tout ca.

Vous avez 2 formulaire.OK

Pkoi les regrouper?

il y en a un pour l inscription le deuxieme comporte koi?

En fait kan l utilisateur est connecté il ne verras ke le formulaire que vous avez creer??

(1) J'ai un formulaire de création rapide de ticket
(2) J'ai un formulaire d'inscription
(3) J'ai un formulaire de création de ticket
(4) formulaire de connexion utilisateur

le formulaire (1) est accessible depuis la page d'accueil :
- cas utilisateur connecté : quand l'utilisateur clique sur submit le formulaire (3) est affiché avec quelques champs remplis.
- cas utilisateur non connecté : quand l'utilisateur anonyme remplit le formulaire (1) clique sur submit le formulaire (3) est affiché avec quelques champs remplis + le formulaire (2) est affiché pour demander l'enregistrement de l'utilisateur si n'a pas de compte si non il rempli le formulaire (4) sera rempli. le basculement entre les formulaires (2) et (4) se fait par un bouton radio (b1 s'identifier b2 s'inscrire si tu n'as de compte).

Puis l'utilisateur clique sur un seul bouton submit pour valider.

voila, c'est le scénario que je dois faire. sachant que j'ai déjà des données dans la base de données donc je ne peux pas basculer vers la solution que vous avez proposer.

Merci d'avance pour votre aide.

bah c est faisable mais ce n est pas comme ca que l on procede habituellement.
Normalement le cas ou l utilistaeur est logué est bien.
Pour la utre cas si il n est pas loguer il ne doit meme pas pouvoir voir cette page.On lui propose directement le formulaire pour se loguer et si il n a pas de compte on lui met un lien vers le formulaire d inscription.

Pour votre senario le seul moyen c est dans le cas ou il n est pas loguer de virer les bouton submit de vos formulaire en mettant un form_alter dans un module.Puis dans le template vous en ajouter un.

Et ensuite tout se fait en javascrit l action c est:

Kan on clique sur le bouton ke vous avez ajouté, on verifie que tout les champ soient correctement remplie, on regarde kel bouton est checher et on recupere les 2 formulaire concerner et on envoie les 2 en javascript sur le onclick du boutton.
Mais ca n est pas suffisant car creer un compte sous drupal, ce st toute un processus de securité et de verification.Sinon on se retrouve avec plein de donnez farfelue dans la base.De plus si vous voulez mettre ce fonctionnement en js, il faut d abord envoyer le formulaire d inscription ou le formulair pour se loguer avant votre formulaire de ticket long.
Donc le js ne suffit pas il faut aussi faire de l ajax car ce sont des requette sur le serveur que vous faite.et il faut recupere le resultat de ces requette avant d envoyer le 2 ieme formulaire.
En gros on envoi le formulaire de login et si la transaction se passe bien on envoi l autre.Pour l inscription encore ca va.
Si vous tenez a votre senarion ce st la seule maniere de proceder et utiliser la librairie jquery pour faire le javascript et l ajax c ets plus pratique et tres puissant.( C'est lour mais c est faisable car tout est faisable mais est ce que ca en vaut la peine)

Mais ce que je vous conseil c est de faire la methode habituelle de tout les site internet c est a dire tant qu on est pas inscrit et loguer et reconnu sur le site on n envoi rien en bdd.Donc il serai normal de ne pas avoir acces a votre formulaire si on est pas loguer.

Si vous tenez neanmoin a mettre en place ce senario et que vous rencontrer des difficulte n hesitez pas a poster.

PS: le problème que vous avez se poserai sur n importe quel cms (Ce n ets pas du a DRUPAL)car ce st un fonctionnement tres specifique.

Tu doit créer ton propre module et mettre une fonction hook_form_alter dedans.ça te permet d'intercepter les formulaire et supprimer des élément du formulaire. Dans ton cas c est les bouton ke tu doit supprimer

j'ai crée mon propre module je l'ai mis dans custom
je l'ai activé.
Mais je n'ai pas eu de modification dans mon site sachant que j'ai mis seulement la fonction fusion_form_form_alter() dans fusion_form.module

comment je peux appeler mon module pour qu'il intercepte les formulaires?

comment afficher les champs de l'inscription du module profile dans ma formulaire avec mon propre module?

NB:

ma fonction hook est la suivante :

function fusion_form_form_alter(&$form, $form_state, $form_id) {
global $user;
if($user->uid == "")
{
switch ($form_id) {

case 'billet':
$form['profile']['name']['#type']='textfield';
$form['profile']['mail']['#type']='textfield';
$form['profile']['profile_tel']['#type']='textfield';
$form['buttons']['#weight'] = 100;

break;
}
}

}

Comment je peux récupérer ces champs dans le fichier tpl de la formulaire billet?

Merci d'avance pour votre aide

j'ai fait apparaitre les champs de la façon suivante :

$form['profile']['name']['#title']='Username';
$form['profile']['name']['#type']='textfield';
$form['profile']['mail']['#title']='E-mail';
$form['profile']['mail']['#type']='textfield';
$form['profile']['profile_tel']['#title']='Téléphone';
$form['profile']['profile_tel']['#type']='textfield';
$form['profile']['captcha']['#type']='captcha';

mais le pb que j'ai perdu mon theme pour le formulaire et aussi auparavant j'ai un captcha image mais mnt j'ai un champ de la forme : Equation : * 4 + 0 =

et aussi un pb pour le submit, je ne sais pas comment je puisse le faire et ou je dois mettre l'appel au script jquery.

tu n apas a faire tout ca.

Tu repère tes bouton dans le tableau form et tu fait un unset de celui qui est au dessus.

Tu laisse le 2 ieme et c est sur lui que tu va mettre la fonction javascript.

Ensuite pour le scripr jquery tu le colle dans un dossier js de ton theme et tu l appelle dans ton page.tpl.php comme on appelle un scrit

si je suis sur la page de la formulaire de création de ticket, comment je récupère ma formulaire de création de compte?

NB: jusqu'à mnt je n'ai pas une page qui contient les deux form en même temps.

comment je peux créer une instance de la formulaire d'inscription et une instance du formulaire d'identification dans mon propre module?

Aussi un autre pb, je veux récupérer les champs de l'authentification et création de compte dans template.php pour que je puisse les mettre dans la template spécifique de création de mon ticket?

Salut,

J'ai un pb au niveau de validation de la formulaire :

le pb est le suivant :
- si je clique sur le bouton radio : j'ai un compte le formulaire d'authentification s'affiche.
- si je clique sur le bouton radio : je suis nouveau dans le site le formulaire d'inscription s'affiche et celui de l'authentification se masque via javascript (jquery).

mon pb mnt est que je fais submit de l'ensemble de formulaire le validateur de drupal cherhche les champs qui sont masqué (dans un div avec display:none) j'ai essayé même d'écraser le contenu de div via innerHTML mais tj le même pb?

Est qu'il y a une solution de faire désactiver la validation des champs masqué via jquery ou ajax si oui comment le faire?

merci d'avance pour votre aide.

Sur le click de ton bouton en jquery tu dois déterminer quel sont les formulaires que tu envoi. Regarde il y a des méthode en jquery qui font ça.envoi d' abord le formulaire d' inscription ou de connexion et selon me résultat de cette envoi tu envoit ton formulaire .
Tu risque de devoir faire de l Ajax

Bonsoir,

Merci pour votre aide, j'ai pu régler mon formulaire suivant mon besoin.

Maintenant je veux supprimer ou modifier le message qui s'affiche depuis drupal suite à une publication ou mise à jour d'un contenu.

Ma question est ce que ceci est faisable depuis le cms ou bien je dois la changer le code source du module cck et à quel niveau?

Le message qui s'affiche actuellement est du genre "Votre 'type de contenu' 'title' a été publié"

C'est très bien que tu ai réussi pour tes formulaires.C était pas si évident.
Pour les messages tu va dans ton page.tpl.php du theme en question et tu efface la variable $message qu il y a dedans et tu n aura plus rien.