248 lines
7.8 KiB
PHP
248 lines
7.8 KiB
PHP
<?php
|
|
|
|
require_once 'log.php';
|
|
require 'PHPMailer/Exception.php';
|
|
require 'PHPMailer/PHPMailer.php';
|
|
require 'PHPMailer/SMTP.php';
|
|
use PHPMailer\PHPMailer\PHPMailer;
|
|
use PHPMailer\PHPMailer\SMTP;
|
|
use PHPMailer\PHPMailer\Exception;
|
|
if ( !isset($site) )
|
|
{
|
|
require_once( "config.inc.php" );
|
|
header( 'Location: ' . $accueil );
|
|
}
|
|
// $var clef à rechercher dans $_POST, $_GET, et $_SESSION (si $session=true)
|
|
// $default valeur retournée si aucune valeur n'est trouvée
|
|
// $session: si true, rechercher aussi dans $_SESSION
|
|
|
|
function getpost( $var )
|
|
{
|
|
//echo '$var =>' . $var . "<br />";
|
|
if ( isset($_GET[$var]) )
|
|
{
|
|
//echo '$_get -> $var =>' . $var . "<br />";
|
|
return $_GET[$var];
|
|
}
|
|
elseif ( isset($_POST[$var]) )
|
|
{
|
|
//echo '$_POST -> $var =>' . $var . "<br />";
|
|
return $_POST[$var];
|
|
}else
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
// MET LA PREMIÈRE LETTRE D'UN MOT EN MAJUSCULE ( utf8 compliant )
|
|
|
|
function mb_ucfirst($str)
|
|
{
|
|
$char = mb_substr($str,0,1,"UTF8");
|
|
$str = mb_substr( $str, 1, NULL, "UTF8");
|
|
$char = mb_strtoupper( $char, "UTF8");
|
|
return $char . $str;
|
|
}
|
|
|
|
function getLang( $lang, $gestion=false )
|
|
{
|
|
$dico = array();
|
|
if ( empty($lang) )
|
|
{
|
|
$lang="en";
|
|
}
|
|
$langPath ='lang/'.$lang;
|
|
if ($gestion)
|
|
$langPath = "../" . $langPath;
|
|
if (($fh = fopen($langPath, 'r') ))
|
|
{
|
|
$str = fgets($fh);
|
|
fclose($fh);
|
|
$dico = json_decode($str, true);
|
|
return $dico;
|
|
}else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function choixVotation($path, $methode=2) //2 = toutes les votations 1 = votations en cours 0 = votations cloturées
|
|
{
|
|
global $db, $base_url, $action;
|
|
$query = "SELECT * FROM liste_votations";
|
|
if ($methode != 2)
|
|
{
|
|
$query .= " where status=" . $methode;
|
|
}
|
|
$result = $db->query($query);
|
|
$votations = $db->result->fetch_all(MYSQLI_ASSOC);
|
|
print ('<form method="get" action="' . $path . '">');
|
|
print "<pre>";
|
|
if ($db->result->num_rows == 1)
|
|
{
|
|
$redirect = '<META HTTP-EQUIV=Refresh CONTENT="0; URL=' . $base_url . $path . '?id=' . $votations["0"]["id"];
|
|
if( !empty($action))
|
|
{
|
|
$redirect .= '&action=' . $action;
|
|
}
|
|
$redirect .= '">';
|
|
|
|
echo $redirect;
|
|
//header( 'Location: ' . $base_url . '/gestionsite/modifVotation.php?action=modif&id=' . $votations["0"]["id"]);
|
|
}
|
|
foreach($votations as $key => $value )
|
|
{
|
|
print '<input type="radio" name="id" value="' . $value["id"] . '"> ' . $value["titre"] . ' :' . $value["libelle"] . '<br>';
|
|
}
|
|
print '</pre><br>
|
|
<div>
|
|
<input type="submit" value="Envoyer">
|
|
</div>
|
|
</form>';
|
|
}
|
|
|
|
/*
|
|
function envoiMailold($destinataire, $sujet, $text, $html=false, $cc='', $bcc='')
|
|
{
|
|
require_once 'swiftmailer/autoload.php';
|
|
//require_once 'include/swiftmailer/swiftmailer/lib/swift_init.php';
|
|
$transport = (new Swift_SmtpTransport('mail.gandi.net', 465, 'ssl'))
|
|
->setUsername('contact@lalis.fr')
|
|
->setPassword('Gu>V$fiM{bQ^!x+FAHF+R.}bl');
|
|
$mailer = new Swift_Mailer($transport);
|
|
$message = (new Swift_Message($sujet))
|
|
->setFrom(["contact@lalis.fr"])
|
|
->setTo([$destinataire])
|
|
->setCharset('utf-8');
|
|
$type = $message->getHeaders()->get('Content-Type');
|
|
if ($html)
|
|
{
|
|
// setParameters() takes an associative array
|
|
$type->setValue('text/html');
|
|
$type->setParameter('charset', 'utf-8');
|
|
$str = nl2br($text);
|
|
$text = "<html><head></head>\n<body>" . $str . "</body></html>";
|
|
log_write(__FILE__ . EOL . __LINE__ . EOL . wordwrap($text, 1000, "\r\n"), INFO);
|
|
}else
|
|
{
|
|
$type->setValue('text/plain');
|
|
$type->setParameter('charset', 'utf-8');
|
|
$text = str_replace("\n","\r\n", $text);
|
|
}
|
|
$message->setBody($text);
|
|
//add date header
|
|
$headers = $message->getHeaders();
|
|
$headers->addDateHeader('Your-Header', new DateTimeImmutable('3 days ago'));
|
|
if (!$mailer->send($message, $failures))
|
|
{
|
|
echo "Failures:";
|
|
print_r($failures);
|
|
log_write(__FILE__ . EOL . __LINE__ . EOL . "Le courriel n'est pas parti:" . $destinataire . EOL . $sujet . EOL . print_r($failure, true) . EOL . wordwrap($text, 1000 , "\r\n"), ERROR);
|
|
return false;
|
|
}
|
|
return true;
|
|
}*/
|
|
|
|
function envoiMail($destinataire, $sujet, $text, $html=false, $cc='', $bcc='')
|
|
{
|
|
|
|
//require 'vendor/autoload.php';
|
|
$mail = new PHPMailer(true);
|
|
try {
|
|
if ($html)
|
|
{
|
|
// setParameters() takes an associative array
|
|
$str = nl2br($text);
|
|
$text = "<html><head></head>\n<body>" . $str . "</body></html>";
|
|
log_write(__FILE__ . EOL . __LINE__ . EOL . wordwrap($text, 1000, "\r\n"), INFO);
|
|
$mail->isHTML(true);
|
|
$mail->AltBody = 'Ceci est un messssage HTML';
|
|
}else
|
|
{
|
|
//$mail->isHTML(false);
|
|
|
|
$text = str_replace("\n","\r\n", $text);
|
|
}
|
|
|
|
|
|
//Server settings
|
|
//$mail->SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output
|
|
$mail->isSMTP(); //Send using SMTP
|
|
$mail->Host = 'mail.gandi.net'; //Set the SMTP server to send through
|
|
$mail->SMTPAuth = true; //Enable SMTP authentication
|
|
$mail->Username = 'contact@lalis.fr'; //SMTP username
|
|
$mail->Password = 'Gu>V$fiM{bQ^!x+FAHF+R.}bl'; //SMTP password
|
|
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; //Enable implicit ssl encryption
|
|
$mail->Port = 465; //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`
|
|
$mail->MessageDate= '';
|
|
$mail->SMTPKeepAlive = true;
|
|
//Recipients
|
|
$mail->setFrom('contact@lalis.fr');
|
|
$mail->addAddress($destinataire); //Add a recipient
|
|
//$mail->addReplyTo('info@example.com', 'Information');
|
|
$mail->CharSet = PHPMailer::CHARSET_UTF8;
|
|
$mail->Body = $text;
|
|
//Attachments
|
|
//$mail->addAttachment('/var/tmp/file.tar.gz'); //Add attachments
|
|
//$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); //Optional name
|
|
|
|
//Content
|
|
//Set email format to HTML
|
|
$mail->Subject = $sujet;
|
|
$mail->send();
|
|
echo 'Message has been sent';
|
|
log_write(__FILE__ . EOL . __LINE__ . EOL . "Le courriel est parti:" . $destinataire . EOL . $sujet . EOL, INFO);
|
|
} catch (Exception $e) {
|
|
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
|
|
log_error(__FILE__ . EOL . __LINE__ . EOL . "Le courriel n'est pas parti:" . $destinataire . EOL . $sujet . EOL . print_r($mail->ErrorInfo, true) . EOL . wordwrap($text, 1000 , "\r\n"));
|
|
$mail->getSMTPInstance()->reset();
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
function formatteDate($locale, $date, $tz)
|
|
{
|
|
$formatter = new IntlDateFormatter($locale, IntlDateFormatter::LONG, IntlDateFormatter::NONE, $tz, IntlDateFormatter::GREGORIAN );
|
|
$datetime = new DateTime();
|
|
$datetime->setTimestamp($date);
|
|
if ($formatter == null)
|
|
{
|
|
log_write(__FILE__ . EOLH . __LINE__ . EOLH . "Formatter error : locale = " . $locale . "tz = " . $tz . "Formatter = " . print_r($formatter, true) . InvalidConfigException(intl_get_error_message()),ERROR);
|
|
}
|
|
return $formatter->format($datetime );
|
|
}
|
|
|
|
function listeAdherents()
|
|
{
|
|
$dolibarr = new dbDolibarr();
|
|
$query = 'SELECT login, firstname, lastname FROM llx_adherent';
|
|
$dolibarr->query($query);
|
|
while ($adherent = $dolibarr->result->fetch_array())
|
|
{
|
|
$listeAdherents[$adherent['login']] = $adherent['firstname'] . ' ' . $adherent['lastname'];
|
|
}
|
|
$dolibarr->close();
|
|
return $listeAdherents;
|
|
}
|
|
|
|
function listeVotants($idVotation, $idVote, $listeAdherents)
|
|
{
|
|
global $db;
|
|
$nv = 0;
|
|
$text = '';
|
|
|
|
$query = "SELECT DISTINCT idVotant FROM votes WHERE idVotation=" . $idVotation . ' AND idVote=' . $idVote;
|
|
$result = $db->query($query);
|
|
|
|
while ($idVotants = $db->result->fetch_assoc())
|
|
{
|
|
$nv++;
|
|
$text .= $listeAdherents[$idVotants['idVotant']] . EOLH;
|
|
}
|
|
print('Nombre de votants : ' . $nv . EOLH . '<div id="listeVotants' . $idVote . '" style="display: none; line-height: 0.8;">' . $text . '</div>');
|
|
print('<button id="button' . $idVote . '" onclick="show(\'listeVotants\',\'' . $idVote . '\')">Voir la liste des votants</button>' . EOLH);
|
|
}
|
|
|
|
?>
|