CMS Automne

Forum de la communauté du CMS Automne
Nous sommes actuellement le Jeu Mai 02, 2024 9:18 am

Le fuseau horaire est UTC [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 5 messages ] 
Auteur Message
MessagePublié: Mer Oct 05, 2011 2:30 pm 
Hors-ligne

Inscrit(e) le : Ven Août 12, 2011 9:17 am
Message(s) : 55
Bonjour,

J'utilise Automne pour créer le site d'un réseau de franchises. Je dois donc avoir, entre autres, une page listant tous les centres franchisés et une page de détail affichant les infos de chaque centre (accessible en cliquant sur un item de la liste)

J'ai donc créé un module Polymod permettant de gérer la liste des centres, une page affichant la liste complète et un formulaire de recherche (pour trouver un centre par ville ou par département), et enfin la page de détail qui affiche les infos d'un centre en fonction d'un identifiant passé en $_GET.

Mon problème se situe au niveau du formulaire de contact que je veux insérer dans cette page de détail :

J'ai bien créé mon formulaire (grâce au module Formulaire) mais je me pose une question (un peu tard c'est vrai...) : Peut-on utiliser une variable comme adresse destinataire du mail ? et si oui sous quelle forme ?

Mon idée était d'assigner une variable "email_centre" sur ma page de détail, et de l'utiliser dans mon formulaire en créant un champ email "email_centre" (masqué) et en utilisant l'action "Envoi des valeurs du formulaire à un email fournis dans un champ du formulaire"... Est-ce que c'est possible ?

Merci pour vos réponses


Haut
 Profil  
 
MessagePublié: Mer Oct 05, 2011 8:01 pm 
Hors-ligne
Utilisateur enthousiaste

Inscrit(e) le : Ven Mars 23, 2007 9:07 am
Message(s) : 57
Il est possible d'utiliser des variables dans un formulaire du module "Formulaires" intégré nativement à Automne. Pour cela, voir l'aide dynamique du module.
Cependant il faut bien comprendre que les variables doivent être préalablement déclarées en PHP.
Et, le traitement des actions du formulaire étant réalisé en entête du script PHP (la page Automne), il n'est pas aisé de déclarer ses variables préalablement.

Une solution consiste à utiliser des variables de SESSION.
Par exemple {session:string:emailTo} peut fonctionner correctement.

Un exemple pour la page de détail :
Grosso modo il suffit de déclarer la variable $_SESSION['emailTo'] lors du chargement de la page détail (en PHP, ou via un <atm-setvar>)
Le formulaire Automne aura un champ caché "email", avec pour valeur par defaut {session:string:emailTo}.
Dans les actions du formulaire on indique "envoyer un email à partir de la valeur d'un des champs" et on précise le champ "email".

Cela devrait fonctionner, mais n'est pas forcément la façon la plus propre car elle a son lot d'inconvénients.

Pour ma part j'aime bien utiliser un formulaire simple en PHP, en utilisant la classe CMS_email() d'Automne.
Je préfère cette manière plutôt que d'utiliser le module Formulaires natif, qui a également son lot d'inconvénients.


Haut
 Profil  
 
MessagePublié: Jeu Oct 06, 2011 8:52 am 
Hors-ligne

Inscrit(e) le : Ven Août 12, 2011 9:17 am
Message(s) : 55
Merci de ta réponse,

j'ai testé hier ce que j'avais dans l'idée (ce que tu expliques mais avec un simple variable, pas de session) : j'ai déclaré dans ma page de détail la variable email_centre
Code :
<atm-setvar vartype="var" varname="email_centre" value="{Centres:Email_du_centre:value}" />
dans une rangée, et dans mon formulaire j'ai effectivement un champ email_centre caché avec pour valeur par défaut {var:email:email_centre}
Ça fonctionne, mais bizarrement pas tout le temps... au chargement de la page, le champ email_centre (que je ne masque pas pour les tests) est bien renseigné, mais si je recharge la page, le champ email_centre se vide... et je ne comprend pas trop pourquoi...

Je vais tester avec une variable de session pour voir si il y a le même fonctionnement, sinon je regarderais de plus prés la classe CMS_email()

Sinon, tu parles d'inconvénients à utiliser cette méthode, quels sont-ils ?


Haut
 Profil  
 
MessagePublié: Jeu Oct 06, 2011 9:05 am 
Hors-ligne
Utilisateur enthousiaste

Inscrit(e) le : Ven Mars 23, 2007 9:07 am
Message(s) : 57
Si tu veux regarder comment se passent les actions du formulaire, jette un coup d'oeil sur le modèle du module qui y correspond :
/automne/templates/mod_cms_forms_header.php

Le code de ce modèle est inséré en tête de ta page Automne, si un formulaire est détecté dans la page.

Pour les inconvénients :
- Pour la session il faut correctement gérer la persistance et l'organisation des données. Mais tu peux mettre la variable {session:string:emailTo} directement dans le champ d'action "Envoyer à un ou plusieurs emails" de ton formulaire, c'est rapide à développer.
- Pour le champ caché, cela permet à un utilisateur averti de modifier la valeur du champ. Donc potentiellement une faille de sécurité.

Une alternative est de monter toi même ton formulaire, et utiliser la classe CMS_email pour envoyer un email lors de la soumission.
Avec le module i18n il est aisé de créer des variables pour les traductions et pour les textes qui te serviront comme "sujet du message", "corps du message", etc.
Pour moi c'est sans doute la solution la plus propre. Un peu plus long à développer, mais tu auras ce que tu souhaites, et tu pourras faire évoluer le code à ta convenance.
Si tu as besoin d'aide, il y a le forum :wink:


Haut
 Profil  
 
MessagePublié: Jeu Oct 06, 2011 9:14 am 
Hors-ligne

Inscrit(e) le : Ven Août 12, 2011 9:17 am
Message(s) : 55
Merci pour toutes ces infos Jérémie ! (quelle réactivité sur ce forum, c'est super)

Je vais me pencher sur tout ça attentivement.


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 5 messages ] 

Le fuseau horaire est UTC [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 7 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Recherche de:
Aller vers :  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduit par Maël Soucaze et Elglobo © phpBB.fr