Ouvrir un popup contenant un formulaire au bout d'un certain temps

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 à Tous,

je souhaite mettre en place un formulaire dans un popup style lightbox2,
j'ai vu qu'il y avait plusieurs tuto disponibles en farfouillant sur le net.

Par contre, j'aimerais que ce popup s'ouvre automatiquement au bout d'un certain temps, ou d'un certain nombre de clics de la part du visiteur.
L'idéal serait par la suite, de faire en sorte que ce formulaire ne s'ouvre plus si l'utilisateur a répondu au formulaire.

pour information, pour accéder au site, le visiteur est forcément authentifié.

Auriez vous une piste à me suggérer ?

disons qu'à ce stade, ce qui m'importe, c'est surtout de connaitre une méthode qui me permettra d'ouvrir le popup automatiquement.

Merci bien.

Version de Drupal : 

bonjour, ayant voulu faire une chose a peu près similaire, en fouillant un peus ur le net, j'avais fini par trouver une solution que j'ai développée ici : http://drupalfr.org/forum/support/developpement/30541-astuce-image-dans-...

le principe est d'ouvrir automatiquement une popup au chargement d'une page en particulier (ici ma page d’accueil)
ici la popup contient une image, mais il y a moyen je crois de mettre du contenu html

de même il y a moyen dans le code script de mettre un timer pour que ça ne s'affiche qu'à partir d'un certain temps

tu peux essayer de t'inspirer de ce code.

bon courage!

alors,
en ce qui concerne l'ouverture d'un formulaire dans un lightbox, c'est ok.
maintenant, étant donné mes limites en php, j'ai du mal à avancer.

voici le "scénario" que je voudrais retranscrire en script :
on part du principe que l'utilisateur est forcément connecté.

je récupère l'uid de l'utilisateur
je me rends dans la base de données, dans la table "webform_views_participez_au_grand_jeu_"
je vérifie si le champs "uid" de cette table contient l'uid de l'utilisateur connecté
si non, j’exécute une url qui contient la ligthbox
si oui, je ne fais rien

pourriez vous m'aider ?

merci

Dans un premier temps,
je tente de récupérer la valeur située dans le champs "uid" de la table "webform_views_participez_au_grand_jeu_", pourriez-vous m'aider avec mon debut de code ?

<?php
$connexion
= mysql_connect("serveur", "identifiant","motdepasse");
mysql_select_db("nomdelabase");
global
$user;
$query= mysql_query("SELECT uid FROM webform_views_participez_au_grand_jeu_ WHERE uid like $user->uid");
echo
$query;
?>

bien entendu, je n'ai rien qui s'affiche ;)

<?php
$connexion
= mysql_connect('serveur', 'identifiant','motdepasse');
mysql_select_db('nomdelabase',$connexion);
global
$user;
$query= mysql_query('SELECT uid FROM webform_views_participez_au_grand_jeu_ WHERE uid like $user->uid');
echo
$query;
?>

essaye avec ça
il te manquait "$connexion" à la seconde ligne et j'ai remplacé les double quote par des simples quote, je sais pas si ça change grand chose...

pour plus d'infos, si tu n'y connais pas grand chose au php, regarde cette page, et le reste du site d'ailleurs : http://www.phpdebutant.org/article65.php

Merci pour vos infos,
mais je n'ai toujours pas de résultat.
Je poursuis mes recherches.

En ce qui concerne le lien que vous m'avez transmis,
c'est en grande partie grâce à lui que j'avais déjà pu éditer ces lignes de code ^^

Je tente une requete toute simple, celle de m'afficher les champs "uid",
et en retour, j'ai un joli message "Erreur de la requête MySQL", je ne comprends pas :

<?php
 
     mysql_connect
('serveur', 'user', 'mdp') OR die('Erreur de connexion à la base'); 
    
mysql_select_db('nombase') OR die('Erreur de sélection de la base'); 

    
$requete = mysql_query('SELECT uid FROM webform_views_participez_au_grand_jeu_') OR die('Erreur de la requête MySQL'); 

    
mysql_close(); 

     while(
$resultat = mysql_fetch_assoc($requete))
     { 
          echo
'<p>UID : '.$resultat['uid'].'</p>'
     } 
?>

reprends ce bout de code, sans rien oublier, et en adaptant, et voit si ça marche :

<?php
$db
= mysql_connect('sql.free.fr', 'login', 'password');  // 1
mysql_select_db('nom_de_la_base',$db);                    // 2
$req = mysql_query('SELECT * FROM clients_tbl');          // 3
$res = mysql_num_rows($req);                               // 4

echo 'Il y a '.$res.' enregistrement(s) dans la table Clients.'// 5

mysql_close($db);  // 6
?>

car la encore dans "mysql-select-db" tu oublie d'inclure les identifiants de connexion indiqués à la ligne d'au dessus avec la variable "$db" !

Merci pour votre aide, je commence à voir le bout (de loin quand même ^^)

Le code suivant m'affiche le contenu du champs UID figurant dans la table webform_views_participez_au_grand_jeu_

Maintenant, je dois trouver comment afficher l'uid de l'utilisateur connecté, ou effectuer une vérification, à savoir, si l'uid de l'utilisateur connecté figure dans la liste.

<?php 
     $db
= mysql_connect('serveur', 'identifiant', 'mdp') OR die('Erreur de connexion à la base'); 
    
mysql_select_db('nombase',$db) OR die('Erreur de sélection de la base'); 

     $requete = mysql_query('SELECT uid FROM webform_views_participez_au_grand_jeu_') OR die('Erreur de la requête MySQL'); 

     mysql_close(); 

     while($resultat = mysql_fetch_array($requete))
     { 
          echo
'<p>Contenu colonne UID : '.$resultat['uid'].'</p>'
     } 
?>

ptet un truc du genre :

<?php
     $db
= mysql_connect('serveur', 'identifiant', 'mdp') OR die('Erreur de connexion à la base');
    
mysql_select_db('nombase',$db) OR die('Erreur de sélection de la base');

     $requete = mysql_query('SELECT uid FROM webform_views_participez_au_grand_jeu_') OR die('Erreur de la requête MySQL');

     mysql_close();

     global $user;

     while($user->uid = mysql_fetch_array($requete))
     {
          echo
'<p>phrase à afficher si l'ID de l'utilisateur est dans la liste</p>';
     }
?>

alors,
j'ai eu plusieurs incidences :
le bloc affichait "phrase à afficher si l'ID de l'utilisateur est dans la liste" quel que soit l'utilisateur, connecté ou non.
et drupal oubliait les identifiants de connexion après chaque clic sur un lien ou bouton,
du coup, je me suis rendu dans la bdd pour supprimer le contenu du bloc dans lequel j'ai inclus le code php.

je poursuis les recherches et je reste ouvert à toute proposition :)

Hou Yeah !
j'ai réussi à avancer d'une étape,
j'arrive donc à vérifier si l'id de l'utilisateur connecté, figure dans la table webform_views_participez_au_grand_jeu_
Voici le code :

<?php
 
     $db
= mysql_connect('serveur', 'login', 'mdp') OR die('Erreur de connexion à la base'); 
    
mysql_select_db('nombasededonnee',$db) OR die('Erreur de sélection de la base'); 
  
   global
$user;
 
    
$requete = mysql_query('SELECT uid FROM webform_views_participez_au_grand_jeu_ WHERE uid='.$user->uid.'') OR die('Erreur de la requête MySQL'); 

    
mysql_close(); 

     while(
$resultat = mysql_fetch_array($requete))
     { 
          echo
'<p>Cet utilisateur (le numéro : '.$resultat['uid'].') a participé au tirage au sort</p>'
     } 
?>

prochaine étape, si je comprends bien, ce sera avec du javascript cette fois-ci,
il faudrait que si cette condition n'est pas remplie, (à savoir, si l'utilisateur connecté ne figure pas dans la table webform_views_participez_au_grand_jeu_) qu'un lien soit chargé automatiquement, au bout d'un certain temps ou d'un certain nombre de clics. Le lien en question, c'est un formulaire que j'ai inclus dans une lightbox.

alors, ça fait longtemps que je n'ai pas codé en php, mais j’essaierai bien quelque chose du genre (de mémoire)

while($resultat = mysql_fetch_array($requete))
     {
       if (!empty($resultat)) //vérifie que la variable n'est pas vide (et donc existe et est remplie)
         {echo '<p>Cet utilisateur (le numéro : '.$resultat['uid'].') a participé au tirage au sort</p>';}

      else {echo "<a href="ton-lien-a-charger.php">ton-lien-a-charger</a>";}
     } 

Re-Bonjour,

merci encore pour vos informations,
j'ai tenté la manœuvre, mais sans résultat, je vais tout de même m'en inspirer.

Je rentre de vacance en début janvier, et je ne manquerai pas de m'y remettre !

merci encore pour votre intérêt.

Re-bonjour,
je n'ai pas encore résolu la contrainte de l'ouverture de la lightbox au bout d'un certain nombre de clics,
mais j'ai mis en place quelque-chose de similaire (toujours sans prendre en compte les clics)

pour le moment, je n'ai plus le temps de m'y pencher, mais dès que j'aurai une solution, je la posterai.
le lien