Initial commit

This commit is contained in:
2020-11-02 15:46:52 +01:00
commit 17f974127c
13788 changed files with 1921656 additions and 0 deletions

View File

@@ -0,0 +1,266 @@
<?php
include_once(realpath(dirname(__FILE__)) . "/../../../classes/PluginsClassiques.class.php");
include_once(realpath(dirname(__FILE__)) . "/../../../classes/Message.class.php");
include_once(realpath(dirname(__FILE__)) . "/../../../classes/Messagedesc.class.php");
include_once(realpath(dirname(__FILE__)) . "/../../../classes/Variable.class.php");
include_once(realpath(dirname(__FILE__)) . "/../../../classes/Mail.class.php");
include_once(realpath(dirname(__FILE__)) . "/../../../classes/Reecriture.class.php");
class Contact extends PluginsClassiques{
var $id;
var $nom;
var $prenom;
var $email;
var $tel;
var $sujet;
var $message;
var $adresse;
var $cpostal;
var $ville;
var $date;
var $lu;
var $table = "contact";
var $bddvars = array("id","nom","prenom","email","tel","sujet","message", "adresse", "cpostal", "ville", "date","lu", "societe", "fonction", "cv", "lettre","annonce");
function Contact(){
$this->PluginsClassiques();
}
function init(){
$variable = new Variable();
if(!$variable->charger("contact")){
$emailcontact = new variable();
$emailcontact->charger("emailcontact");
$variable->nom = "contact";
$variable->valeur = $emailcontact->valeur;
$variable->add();
}
$message = new Message();
if(!$message->charger("contact")){
$message->nom = "contact";
$messagedesc = new Messagedesc();
$messagedesc->message = $message->add();
$messagedesc->lang="1";
$messagedesc->intitule = "contact";
$messagedesc->titre = "__SUJET__";
$messagedesc->description = "Bonjour,<br /> Un nouveau mail de contact vient de vous être adressé : <br />nom : __NOM__<br />agence : __PRENOM__<br />email : __EMAIL__<br />message : __MESSAGE__";
$messagedesc->descriptiontext = str_replace("<br />","\r\n",$messagedesc->description);
$messagedesc->add();
}
$test = new Reecriture();
if(!$test->charger('contact.html', 1)) {
$reecriture = new Reecriture();
$reecriture->fond = "contact";
$reecriture->url = 'contact.html';
$reecriture->param = '';
$reecriture->lang = 1;
$reecriture->actif = 1;
$reecriture->add();
}
$cnx = new Cnx();
$query = "CREATE TABLE `contact` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`nom` VARCHAR( 255 ) NOT NULL ,
`prenom` VARCHAR( 255 ) NOT NULL ,
`email` VARCHAR( 255 ) NOT NULL ,
`tel` VARCHAR( 30 ) NOT NULL ,
`sujet` VARCHAR( 255 ) NOT NULL ,
`message` TEXT NOT NULL ,
`adresse` VARCHAR( 255 ) NOT NULL ,
`cpostal` VARCHAR( 255 ) NOT NULL ,
`ville` VARCHAR( 255 ) NOT NULL ,
`date` DATETIME NOT NULL ,
`lu` INT NOT NULL
)";
$resul = mysql_query($query,$cnx->link);
}
function charger($id){
return $this->getVars("select * from $this->table where id=\"$id\"");
}
function varfond(){
global $res, $obligenom, $obligeprenom, $obligetel, $obligesujet, $obligemessage, $obligeadresse, $obligecpostal, $obligeville;
$fondvars = array(
'obligenom',
'obligeprenom',
'obligemessage',
);
if (preg_match_all("/#PARAM_FOND_([a-zA-Z0-9_]+)[\s]*=[\s]*([0-9]*)[\s]*/", $res, $matches, PREG_SET_ORDER)) {
foreach($matches as $match) {
$var = strtolower($match[1]);
if (in_array($var, $fondvars)) {
$$var = $match[2];
$res = str_replace($match[0], '', $res);
}
}
}
}
function action(){
global $action;
switch($action){
case "contact":
$this->crea_contact();
break;
}
if(isset($_GET["errcontact"]) && $_GET["errcontact"] == 1){
$this->formerreur();
}
}
function demmarrage(){
if(!isset($_SESSION["contact"])){
$_SESSION["contact"] = new Contact();
}
}
function formerreur(){
global $res;
if( $_SESSION['contact']->nom == "" ) $res = preg_replace("/\#NOM\[([^]]*)\]/", "\\1", $res);
else $res = preg_replace("/\#NOM\[[^]]*\]/", "", $res);
if( $_SESSION['contact']->prenom == "" ) $res = preg_replace("/\#PRENOM\[([^]]*)\]/", "\\1", $res);
else $res = preg_replace("/\#PRENOM\[[^]]*\]/", "", $res);
if( $_SESSION['contact']->email == "" ) $res = preg_replace("/\#EMAIL\[([^]]*)\]/", "\\1", $res);
else $res = preg_replace("/\#EMAIL\[[^]]*\]/", "", $res);
if( $_SESSION['contact']->message == "" ) $res = preg_replace("/\#MESSAGE\[([^]]*)\]/", "\\1", $res);
else $res = preg_replace("/\#MESSAGE\[[^]]*\]/", "", $res);
$res = str_replace("#NOM",$_SESSION["contact"]->nom,$res);
$res = str_replace("#PRENOM",$_SESSION["contact"]->prenom,$res);
$res = str_replace("#EMAIL",$_SESSION["contact"]->email,$res);
$res = str_replace("#MESSAGE",$_SESSION["contact"]->message,$res);
}
function crea_contact(){
global $obligenom, $obligeprenom, $obligetel, $obligesujet, $obligemessage, $obligeadresse, $obligecpostal, $obligeville;
$urlsite = new Variable("urlsite");
$contact = new Contact();
$contact->nom = strip_tags($_POST["nom"]);
$contact->prenom = strip_tags($_POST["prenom"]);
if( preg_match("/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]{2,}[.][a-zA-Z.]+$/",$_POST["email"])) $contact->email = strip_tags($_POST["email"]);
$contact->tel = strip_tags($_POST["tel"]);
$contact->message = strip_tags($_POST["message"]);
$contact->societe = strip_tags($_POST["societe"]);
$contact->cv = strip_tags(time()."_".$_FILES['cv']['name']);
$contact->lettre = strip_tags(time()."_".$_FILES['lettre']['name']);
$contact->fonction = strip_tags($_POST["fonction"]);
$contact->annonce = strip_tags($_POST["annonce"]);
if ($_POST["formulaire"]=="nous-contacter"){
$contact->sujet = "Formulaire de contact";
}
else
{
$contact->sujet = "Formulaire de candidature" ;
}
$contact->date = date("Y-m-d H:i:s");
$contact->lu = 0;
$contact->add();
$this->envoimessage($contact);
}
function envoimessage($contact){
$message = new Message();
$email = new Variable();
$nomsite = new Variable();
$nomsite->charger("nomsite");
$mail = new Mail();
//echo "<br><br><br><br><br><br>";
if ($_POST["formulaire"]=="nous-contacter"){
$mail->Subject = utf8_decode("Formulaire de contact - ".$nomsite->valeur);
$email->charger("contact");
$message->charger("contact");
} else {
$mail->Subject = utf8_decode("Formulaire de candidature - ".$nomsite->valeur);
$email->charger("recrutement");
$message->charger("recrutement");
//sécurité
move_uploaded_file($_FILES['lettre']['tmp_name'], 'upload_ae75/' . $contact->lettre);
move_uploaded_file($_FILES['cv']['tmp_name'], 'upload_ae75/' . $contact->cv);
}
$messagedesc = new Messagedesc();
$messagedesc->charger($message->id);
$mail->IsMail();
$mail->FromName = utf8_decode($contact->nom);
$mail->From = $contact->email;
$mail->MsgHTML(utf8_decode($this->substitmail($messagedesc->description,$contact)));
$mail->AltBody = utf8_decode($this->substitmail($messagedesc->descriptiontext,$contact));
$mail->AddAddress($email->valeur,utf8_decode($nomsite->valeur));
$mail->send();
}
function substitmail($corps,$contact){
$nomsite = new Variable();
$nomsite->charger("nomsite");
$corps = str_replace("__NOM__",$contact->nom,$corps);
$corps = str_replace("__PRENOM__",$contact->prenom,$corps);
$corps = str_replace("__EMAIL__",$contact->email,$corps);
$corps = str_replace("__MESSAGE__",nl2br ($contact->message),$corps);
$corps = str_replace("__SUJET__",$contact->sujet,$corps);
$corps = str_replace("__SOCIETE__",$contact->societe,$corps);
$corps = str_replace("__FONCTION__",$contact->fonction,$corps);
$corps = str_replace("__ANNONCE__",$contact->annonce,$corps);
$corps = str_replace("__CV__",'<a href="'.urlfond().'/upload_ae75/'.$contact->cv.'">'.$contact->cv.'</a>',$corps);
$corps = str_replace("__LETTRE__",'<a href="'.urlfond().'/upload_ae75/'.$contact->lettre.'">'.$contact->lettre.'</a>',$corps);
return $corps;
}
}
?>

View File

@@ -0,0 +1,19 @@
<?php
include_once(realpath(dirname(__FILE__)) . "/../../../fonctions/authplugins.php");
autorisation("contact");
if(isset($_REQUEST["vue"])) $vue = $_REQUEST["vue"];
else $vue = "";
switch($vue){
case "view":
include_once(realpath(dirname(__FILE__)) . "/view.php");
break;
default:
include_once(realpath(dirname(__FILE__)) . "/listing.php");
break;
}

View File

@@ -0,0 +1,3 @@
<?php
include_once(realpath(dirname(__FILE__)) . "/Contact.class.php");
?>

View File

@@ -0,0 +1,70 @@
<?php
include_once(realpath(dirname(__FILE__)) . "/../../../fonctions/authplugins.php");
autorisation("contact");
include_once(realpath(dirname(__FILE__)) . "/Contact.class.php");
if(isset($_REQUEST["action"]) && $_REQUEST["action"] == "supprimer"){
$contact = new Contact();
$contact->charger($_REQUEST["id"]);
$contact->delete();
}
?>
<script type="text/javascript">
function supprimer(id){
if(confirm("Voulez-vous vraiment supprimer ce message?")) location="module.php?nom=contact&id=" + id + "&action=supprimer";
}
</script>
<div id="contenu_int">
<p align="left"><span class="lien04"><a href="accueil.php" class="lien04">Accueil</a></span> <img src="gfx/suivant.gif" width="12" height="9" border="0" /><a href="module_liste.php" class="lien04">Modules</a> <img src="gfx/suivant.gif" width="12" height="9" border="0" /><a href="#" class="lien04"> Gestion des contacts</a></p>
<div class="entete_liste_config">
<div class="titre">LISTE DES CONTACTS</div>
<div class="fonction_ajout">
</div>
</div>
<ul id="Nav">
<li style="height:25px; width:202px; border-left:1px solid #96A8B5;">Nom</li>
<li style="height:25px; width:202px; border-left:1px solid #96A8B5;">Téléphone</li>
<li style="height:25px; width:242px; border-left:1px solid #96A8B5;">E-mail</li>
<li style="height:25px; width:78px; border-left:1px solid #96A8B5;">Visualiser</li>
<li style="height:25px; width:44px; border-left:1px solid #96A8B5;">Lu</li>
<li style="height:25px; width:14px; border-left:1px solid #96A8B5;">Suppr.</li>
</ul>
<div class="bordure_bottom" id="resul">
<?php
$contact = new Contact();
$query = "select * from $contact->table";
$resul = mysql_query($query,$contact->link);
$i=0;
while($row = mysql_fetch_object($resul)){
if(!($i%2)) $fond="ligne_claire_rub";
else $fond="ligne_fonce_rub";
$i++;
?>
<ul class="<?php echo($fond); ?>">
<li style="width:195px;"><?php echo $row->nom; ?></li>
<li style="width:195px;"><?php echo $row->prenom; ?></li>
<li style="width:235px;"><?php echo $row->email; ?></li>
<li style="width:71px;"><a href="module.php?nom=contact&vue=view&id=<?php echo $row->id; ?>">Visualiser</a></li>
<li style="width:37px;"><?php if($row->lu) echo "oui"; else echo "non"; ?></li>
<li style="width:37px; text-align:center;"><a href="module.php?nom=contact&action=supprimer&id=<?php echo $row->id; ?>"><img src="gfx/supprimer.gif" width="9" height="9" border="0" /></a></li>
</ul>
<?php
}
?>
</div>
</div>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--Migration automatique depuis le fichier original, sauvegardé dans plugin.xml.save-->
<plugin>
<descriptif lang="fr">
<titre>Contact</titre>
<chapo></chapo>
<description>Plugin permettant de mettre en place un formulaire de contact complet avec paramétrage des champs obligatoires, gestion des erreurs dans formulaire, enregistrement en base.</description>
<postscriptum></postscriptum>
</descriptif>
<version>1.1</version>
<auteur>
<nom>Manuel Raynaud - mraynaud@openstudio.fr</nom>
<societe></societe>
<email></email>
<web></web>
</auteur>
<type>classique</type>
<prerequis/>
<thelia>1.5.0</thelia>
<etat>production</etat>
<documentation>Readme.txt</documentation>
<urlmiseajour></urlmiseajour>
</plugin>

View File

@@ -0,0 +1,84 @@
Plugins permettant de mettre en place un formulaire de contact personnalisable.
Il faut mettre en place 2 fonds : contact.html et contacterr.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.
/******************************************************************************************************************************/
On peut choisir quels champs sont obligatoires en les renseignant en début de template.
#PARAM_FOND_obligenom=1
#PARAM_FOND_obligeprenom=1
#PARAM_FOND_obligetel=1
#PARAM_FOND_obligesujet=1
#PARAM_FOND_obligemessage=1
mise en place du formulaire sur la page contact.html :
<form action="#VARIABLE(urlsite)/?fond=contact" 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&eacute;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&eacute;l&eacute;phone </label>
<input name="tel" type="text"/>
</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" rows="10" /></textarea>
<div class="colonneSubmit">
<input type="submit" value="valider"></button>
</div>
</form>
formulaire de la page d'erreur contacterr.html :
<form action="#VARIABLE(urlsite)/?fond=contact" 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&eacute;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&eacute;l&eacute;phone #TEL[<span class="obligaoire">obligatoire</span>]</label>
<input name="tel" type="text" 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" 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[...])

View File

@@ -0,0 +1,53 @@
<?php
include_once(realpath(dirname(__FILE__)) . "/../../../fonctions/authplugins.php");
autorisation("contact");
include_once(realpath(dirname(__FILE__)) . "/Contact.class.php");
$id = $_REQUEST["id"];
$contact = new Contact();
$contact->charger($id);
if(!$contact->lu){
$contact->lu = 1;
$contact->maj();
}
?>
<div id="contenu_int">
<p align="left"><span class="lien04"><a href="accueil.php" class="lien04">Accueil</a></span> <img src="gfx/suivant.gif" width="12" height="9" border="0" /><a href="module_liste.php" class="lien04">Modules</a> <img src="gfx/suivant.gif" width="12" height="9" border="0" /><a href="module.php?nom=contact" class="lien04"> Gestion des contacts</a></p>
<div id="bloc_description">
<!-- bloc entete de la rubrique -->
<div class="entete_liste_config">
<div class="titre">MESSAGE DU CONTACT</div>
<div class="fonction_valider"><a href="module.php?nom=contact">RETOUR</a></div>
</div>
<table width="100%" cellpadding="5" cellspacing="0">
<tr class="claire">
<th width="133" class="designation" style="height:30px; padding-top:10px;">Nom</th>
<th style="padding-top:10px;"><?php echo $contact->nom; ?></th>
</tr>
<tr class="fonce">
<td class="designation">Téléphone</td>
<td><?php echo $contact->prenom; ?></td>
</tr>
<tr class="claire">
<td class="designation">E-mail<br /></td>
<td><?php echo $contact->email; ?></td>
</tr>
<tr class="fonce">
<td class="designation">Message<br /></td>
<td><?php echo nl2br($contact->message); ?></td>
</tr>
</table>
</div>
</div>