THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3
  • manu
  • faï tot petar miladiu

Offline


Plugins permettant de mettre en place un formulaire de contact personnalisable.


Il faut mettre en place 2 couple de fichiers : contact.php/html et contacterr.php/html


Les messages sont enregistrés en base ET envoyé par mail. Une nouvelle variable est crée (dans l'admin, configuration->gestion des variables->contact). A l'installation le plugin reprend l'adresse d'email contact. Vous pouvez ainsi facilement configurer l'adresse mail qui recevra les mails de contact.

Le modèle d'email se trouve dans l'admin configuration -> gestion des messages -> contact. Vou pouvez ainsi le personnaliser comme bon vous semble, tout en gardant le système de substitution comme dans les autres mails.



/******************************************************************************************************************************/

corps du fichier contact.php :

<?php
	$fond="contact.html";
	$pageret=1;
	$obligenom = 1;
	$obligeprenom = 1;
	$obligetel = 1;
	$obligesujet = 1;
	$obligemessage = 1;
	include("fonctions/moteur.php");
?>
corps du fichier contacterr.php : 
<?php
	$fond="contacterr.html";
	$pageret=1;
	$obligenom = 1;
	$obligeprenom = 1;
	$obligetel = 1;
	$obligesujet = 1;
	$obligemessage = 1;
	include("fonctions/moteur.php");
?>

On peut choisir quels champs sont obligatoires en les renseignant dans la page contact.php (en dessous de la variable $fond) :

$obligenom = 1 //nom obligatoire
$obligeprenom = 1 //prénom obligatoire
$obligetel = 1 //téléphone obligatoire
$obligesujet = 1 // sujet (objet du mail) obligatoire
$obligemessage = 1 // corps du message obligatoire

mise en place du formulaire sur la page contact.html :

				<form action="contact.php" method="POST">
						<input type="hidden" name="action" value="contact" />
							<div class="fieldset">
            					<label for="nom">Nom</label>
								<input name="nom" type="text" />
							</div>
							<div class="fieldset">
            					<label for="prenom">Prénom </label>
								<input name="prenom" type="text" />
							</div>
							<div class="fieldset">
            					<label for="email">Mon e-mail </label>
								<input name="email" type="text" />
							</div>
							<div class="fieldset">
								<label for="tel">Téléphone </label>
            					<input name="tel" type="tel"/>
							</div>
							<p>Quel est l'objet de votre message ?</p>
            					<input name="sujet" type="text" class="objet"/>
            				<p>Vos commentaires, suggestions ou questions :</p>
            					<textarea name="message" type="message" rows="10" /></textarea>
							<div class="colonneSubmit">
								<input type="submit" value="valider"></button>
							</div>
				</form>

formulaire de la page d'erreur contacterr.html :

				<form action="contact.php" method="post">
						<input type="hidden" name="action" value="contact" />
							<div class="fieldset">
            					<label for="nom">Nom #NOM[<span class="obligaoire">obligatoire</span>]</label>
								<input name="nom" type="text" value="#NOM"/>
							</div>
							<div class="fieldset">
            					<label for="prenom">Prénom #PRENOM[<span class="obligaoire">obligatoire</span>]</label>
								<input name="prenom" type="text" value="#PRENOM"/>
							</div>
							<div class="fieldset">
            					<label for="email">Mon e-mail #EMAIL[<span class="obligaoire">obligatoire</span>]</label>
								<input name="email" type="text" value="#EMAIL" />
							</div>
							<div class="fieldset">
								<label for="tel">Téléphone #TEL[<span class="obligaoire">obligatoire</span>]</label>
            					<input name="tel" type="tel" value="#TEL"/>
							</div>

							<p>Quel est l'objet de votre message ? #SUJET[<span class="obligaoire">obligatoire</span>]</p>
            					<input name="sujet" type="text" class="objet" value="#SUJET"/>
            				<p>Vos commentaires, suggestions ou questions #MESSAGE[<span class="obligaoire">obligatoire</span>]:</p>
            					<textarea name="message" type="message" rows="10" />#MESSAGE</textarea>
							<div class="colonneSubmit">
								<button type="submit" class="boutons valider"><span>Valider</span></button>
							</div>
				</form>

A vous d'adapter les #VARIABLE[...] pour avertir que le champs est obligatoire, suivant les champs que vous avez défini comme obligatoire ou non (si par exemple le prénom n'est pas obligatoire, enlever #PRENOM[...])

enjoy


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


Bonjour à  tous,

Je teste en local avec "easyphp", lorsque j'ai installé le plugin, cela m'a affiché :
Fatal error: Function name must be a string in C:\Program Files\EasyPHP5.2.10\www\boutique\client\plugins\contact\Contact.class.php on line 56

Je clique page précédente
>configuration
>gestion des messages
>"contact" est bien présent
>éditer, côté BO tout semble bon...

Je vais maintenant mettre en place les 2 html et les 2 php,
puis tester sur la boutique en local

J'ai bien peur que la nouvelle table ne se soit pas créée
Si tel est le cas, je créé la table par phpmyadmin

Je vous tiens au courant...

Offline


Effectivemment la table ne s'est pas créée en installant le plugin,
j'ai donc créée la table manuellement via l'interface de phpmyadmin,
j'ai testé l'envoi du message sur la boutique,
le message est bien enregistré sur la table "contact"

Je vous rappelle que je teste en local,
après 30 mn depuis l'envoi du message, je n'ai rien reçu sur ma boîte mail...

Question, est-ce normal ???

  • manu
  • faï tot petar miladiu

Offline


Hello,

En local il faut que tu modifies ton php.ini pour pouvoir recevoir les mails smile


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


J'ai modifié, et j'ai maintenant :

[mail function]
; For Win32 only.
SMTP = smtp.orange.fr
smtp_port = 25

; For Win32 only.
;sendmail_from = egauran2@orange.fr

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

C'est bon tu penses ...

Offline


C'est OK,
Je viens de configurer le php.ini en local tout fonctionne !!!
Je reçois bien le mail test via le formulaire !!!

C'est une grande satisfaction...

L'homme riche est celui qui partage...

Offline


merci pour ce plugin.
j'ai aussi du faire l'installation SQL à la main (erreur ligne 56)

2 petits détails:
- dans l'exemple:   class="obligaoire" au lieu de class="obligatoire"
- une fois le formulaire soumis sans erreur, comment signifier à l'internaute que son message a bien été envoyé (genre "Merci ....") et enventuellement masquer le formulaire ?
Faut il tester une variable ? introduire un filtre ? créer un autre page contactok.php ?

Last edited by makoto (25-02-2010 21:11:51)

Offline


voici ce que j'ai trouvé:

Contact.class.php
après la ligne 149:

$this->envoimessage($contact);
	redirige("contact.php?success=0"); // pour le retour

contact.php

$parsephp=1; // pour le retour

contact.html

              <h3>Nous envoyer un message</h3>
              <?php if (isset($_GET['success'])) { ?>
              <p class="congratulation">Merci.... Votre message a bien été envoyé.<br />Nous essayerons d'y répondre rapidement. <br />A bientôt</p>
              <?php } else { ?>
              <form action="contact.php" method="POST">
    						<input type="hidden" name="action" value="contact" />
    							<p>
                					<label for="nom">Nom <span class="obligatoire">*</span></label>
    								<input name="nom" type="text" />
    							</p>
    							<p>
                					<label for="prenom">Prénom </label>
    							       	<input name="prenom" type="text" />
    							</p>
    							<p>
                					<label for="email">Mon e-mail <span class="obligatoire">*</span></label>
    							       	<input name="email" type="text" />
    							</p>
    							<p>
    								      <label for="tel">Téléphone </label>
                					<input name="tel" type="tel"/>
    							</p>
    							<p>
                          <label for="sujet">Quel est l'objet de votre message ? <span class="obligatoire">*</span></label>
                          <input name="sujet" type="text" class="objet"/>
                	</p>				
                	<p>     <label for="message">Vos commentaires, suggestions ou questions : <span class="obligatoire">*</span></label>
                		      <textarea name="message" type="message" rows="10"></textarea>
                  </p>
                				
    							<p><button type="submit" class="bouton" style="margin-left:0;"><span><span>Valider</span></span></button></p>
                  <span class="obligatoire">* Champs obligatoires</span>
    				</form>
    				<?php } ?>
  • manu
  • faï tot petar miladiu

Offline


tu peux aussi envoyer le formulaire sur une page de confirmation.

<form method="post" action="contactok.php"> par exemple qui ne contient que le message de confirmation / remerciement


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

  • manu
  • faï tot petar miladiu

Offline


je l'ai mis à jour sur contrib, il s'installe sans problème maintenant.


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


Hello,
très bon plugin, je l'utilise!
Question bete, mais comment faire pour envoyer l'email à 2 destinataires? Je sais que le plugin se base sur l'email renseignée dans le BO, mais dès que j'essaye de préciser 2 adresses email (séparées par une virgule),je ne reçois plus aucun email...
Je peux ajouter le 2nd email quelque part, même en dur?
Merci


qui peut le plus...peut le plus.

Offline


Bonjour,

Le set de caractères de ton serveur c'est ISO-8859-1 ou UTF-8 ? As-tu des problèmes à afficher le B.O. de Thélia sur le même serveur (j'imagine que non) ?
Je ne pense pas que le parsing du php aide dans l'interprétation des caractères, je suis même sûr que ça n'influe pas. smile

Nyro


Nytro Nytropeu !

Multi-squelettes <= all
Connexionauto <= all

Offline


Bonjour Nyro

Ben c'est thelia qui détermine le charset qui est en iso-8859-1

Pour le plugin parserPHP c'est une autre question, je me demande à quoi il sert au juste.

Par contre pour le plugin contact, j'ai volontairement fait une erreur, pour vérifier la page contacterr.
Bon elle s'affiche mais ça fait bizarre, on sait pas ce qui manque au juste ?

507.jpg

et faut tout remplir.

Offline


Alors, non ce n'est pas Thélia qui définit le charset de ton serveur mais ça a l'air de marcher maintenant donc on clos cette partie de la discussion. wink

Last edited by Nyro (20-12-2010 15:27:02)


Nytro Nytropeu !

Multi-squelettes <= all
Connexionauto <= all

Offline


Et bien c'est peut être un problème d'encodage à la création de la page. Faut passer un tit coup de moulinette pour changer les accents en unicode et basta. wink


Nytro Nytropeu !

Multi-squelettes <= all
Connexionauto <= all

Offline


Bonjour makoto

Ou quelqu'un qui passe ..... smile

J'ai essayé en faisant comme dit dans le post #8, le message est affiché (permanent) dés qu'on arrive sur la page contact.
J'ai même essayé en mettant redirige("contact.php?success=1");

Bon je vais tester la méthode manu.

EDIT: la méthode manu smile_top.gif

Mais je suis toujours preneur sur l'autre version, c'est une autre alternative.

Last edited by griggione (21-12-2010 15:10:07)

Offline


Bonjour tous

Pour ceux que ça interesse, l'installation du plugin en images wink

http://thelia.griggione.fr/fr/nav0a.php

Last edited by griggione (31-01-2011 15:21:03)

Offline


Nikel le tuto sa marche bien Merci griggione


Petit question y a moyen d’avoir un upload de pièce jointe, avec ce plugin.

Merci

Last edited by Baxter89 (22-12-2010 19:38:08)

Offline


Bonjour Baxter89

Merci.
Tu as en bas de page 2 les templates avec ou sans page merci.

Offline


Bonjour griggione,

Merci pour les fichiers j’avais vue, mais j’ai mal formulé ma question, je voulais savoir si dans le formulaire on pouvais avoir un champ upload de pièce jointe en plus du nom tel etc..

Merci

Offline


Bonjour,

Pour la redirection suite au mail bien envoyé, pourquoi ne pas simplement faire :

Contact.class.php
après la ligne 149:

$this->envoimessage($contact);
    redirige("contact_ok.php")

puis créer une page : contact_ok.php qui contient :

<?php
	$fond="contact_ok.html";
	$pageret=1;
	include("fonctions/moteur.php");
?>

et pour finir une page : contact_ok.html avec un petit message de remerciement.

Si quelqu'un à la solution pour supprimer les messages dans le BO je suis preneur !

Last edited by Parazoom (04-01-2011 13:42:24)

Offline


Bonjour Parazoom

Ben c'est possible, d'ailleurs dans le tuto je montre comment la faire.
Je propose même de télécharger les fichiers tous faits.

http://thelia.griggione.fr/fr/plu2b.php

Pour la suppression dans le BO j'ai demandé à manu de jeter un coup d'oeil il y a quelques jours. J'attend sa réponse. wink

Offline


RE

Baxter89 wrote:

je voulais savoir si dans le formulaire on pouvais avoir un champ upload de pièce jointe en plus du nom tel etc..

Il faudrait demander à celui qui a fait le plugin, s'il veut le completer ?

Offline


griggione wrote:

Ben c'est possible, d'ailleurs dans le tuto je montre comment la faire.

J'avais pas lu le tuto ! bien vu ;-) et désolé pour le doublon !

Offline


Bonjour,
j'ai un problème,
dans le BO  ( liste des contacts )le mode supprimer ne fonctionne pas
Merci


Toujours en forme,
La différence entre le possible et l’impossible, c’est la volonté, et le  temps ...
Oui mais... ça c'est avec la meilleure volonté du Monde,
Et elle est, des fois, difficile à tenir... Thelia 2.4.4