Forum CMS Made Simple FR
FORMBUILDER passage de query - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Modules, Tags (https://forum.cmsmadesimple.fr/forum-14.html)
+--- Sujet : FORMBUILDER passage de query (/thread-2544.html)



FORMBUILDER passage de query - scorman - 22/01/2013

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.4
#~ Url du site :
#~ Hébergeur / Soft : OVH
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~


Bonjour,

J'utilise le module FORMBUILDER et il se trouve que je pensais qu'il était possible assez facilement de lui passer l'email de destination en query ... Or , à priori, pas du tout ...

Quelqu'un a-t-il une solution ?

En gros, je récupère dans ma base un listing de contacts et je souhaiterais qu'au clic sur un de ces contacts, l'adresse email de celui-ci soit passer comme adresse de destination à mon formulaire FORMBUILDER. Mais je ne vois pas comment faire. ..



Merci d'éclairer ma lanterne ! :p


FORMBUILDER passage de query - Jean le Chauve - 22/01/2013

Tu crées une udt : mail
Code :
$expediteur = "tonadresse@domaine.com";
$destinataire =$params['fld_xx'];
$output = "des $params ou ce que tu veux";
// xx correspond au champs contenant les options d'emails que l'utilisateur doit sélectionner
$body = "<p>ce que tu veux ou un $params</p>";
global $smarty;
$cmsmailer = cms_utils::get_module('CMSMailer');
    $cmsmailer->AddAddress($destinataire);
    $cmsmailer->SetFrom($expediteur);
    $cmsmailer->SetBody($output);
    $cmsmailer->IsHTML(true);
    $cmsmailer->SetSubject('le sujet que tu veux');
    $cmsmailer->Send();
Ensuite, à la fin du formulaire, tu crées un champs *Appeler une balise utilisateur avec le formulaire résultats* et tu indiques l'udt à utiliser : mail.
Tu coches Exporter la référence de formulaire vers un UDT en tant que $params['FORM']?
Et basta


FORMBUILDER passage de query - scorman - 29/01/2013

Ouh là ...

Donc je une UDT (une balise utilisateur quoi ?) .. jusque là, ok.

Mais après, j'avoue ne pas trop suivre la logique.
Désolé je débute à ce niveau-là...


Je ne suis pas certain que ton code corresponde bien à ce que je souhaite faire :

Situation:

J'ai un listing de personnes avec pour chacun, un bouton 'contactez-moi'.

Je souhaiterais diriger ce lien vers une unique page CONTACT et passer l'adresse email de cette personne comme query : index.php?page=contact&destinataire=emailcontact

Le formulaire serait relativement simple : nom, prénom, téléphone, email, message

Je souhaiterais envoyer ce formulaire à la query $destinataire et à une deuxième adresse toujours identique (directeur).




Merci d'avoir pris la peine de me répondre en tout cas !


FORMBUILDER passage de query - Jean le Chauve - 29/01/2013

Il te suffit de modifier l'udt : $destinataire =$params['fld_xx']; en $destinataire =$smarty.get.destinataire;

Si tu ne comprends pas l'udt, pourquoi faire compliqué ?
Tu supprimes le bouton 'contactez-moi'.
Tu places un formulaire de contact dans ta page contenant le listing et l'internaute choisi le contact à utiliser dans la liste déroulante du formulaire grâce au champs formulaire : *Adresser par mail les résultats après choix par menu déroulant.
Tu n'oublies pas de cocher : Montrer le formulaire en ligne ?


FORMBUILDER passage de query - scorman - 29/01/2013

Il ne s'agit pas de faire compliqué mais malheureusement la simplification que tu proposes ne convient pas pour mon client...

Donc voilà.. Je vais tenter de mettre en place ta solution.

Merci


  1. Créer l'UDT avec "$destinataire =$smarty.get.destinataire;"
  2. Créer le formulaire avec les champs désirés
  3. Créer un champs *Appeler une balise utilisateur avec le formulaire résultats* en indiquant l'ut "mail"
  4. Mettre la balise du formulaire créé dans la page désirée



Et je devrais être bon alors?


FORMBUILDER passage de query - Jean le Chauve - 29/01/2013

Je pense que oui, mais je n'ai pas testé ton cas particulier.
Faudra peut-être bouger global $smarty; en haut de l'udt.


FORMBUILDER passage de query - scorman - 30/01/2013

Il y a un petit couac ..

$smarty.get.destinataire récupère bien l'adresse email à l'arrivée sur la page du formulaire mais à la validation du formulaire, il recharge la page sans la query $destinataire dans l'url .. donc l'UDT ne peut pas récupérer l'adresse mail.

Il faudrait presque la renvoyer via le formulaire à l'UDT ..

Mais comment ?


FORMBUILDER passage de query - scorman - 30/01/2013

Si je crée un champs caché dans mon formulaire, y a-t-il moyen de mettre un value par défaut égalant " $_get['destinataire'] ?


FORMBUILDER passage de query - Jean le Chauve - 30/01/2013

Ok, logique, il faut donc passer la valeur du get dans un champs hidden du formulaire.
Essaye en créant un champs hidden et dans Valeur (regardez dans onglets "Options avancées" si vous utilisez des balises Smarty) :
tu colles {$smarty.get.destinataire} et tu coches l'option avancée : Avec des balises Smarty dans les champs ? :
Tu modifies l'udt : $destinataire =$params['fld_xx'];