0byt3m1n1
Path:
/
home
/
k
/
a
/
s
/
kassiope
/
www
/
administrer
/
[
Home
]
File: newsletter.php
<? include("../configuration.inc.php"); necessite_identification(); necessite_priv("admin"); $DOC_TITLE = "Gestion des newsletters"; include("modeles/haut.php"); $start = intval(vn($_REQUEST['start']));// Détermine la variable start (début de page) switch (vb($_REQUEST['mode'])) { case "ajout" : affiche_formulaire_ajout_newsletter(); break; case "modif" : affiche_formulaire_modif_newsletter($_GET['id']); break; case "suppr" : supprime_newsletter($_GET['id']); affiche_liste_newsletter($start); break; case "insere" : insere_newsletter($_POST['id'], $_POST); affiche_liste_newsletter($start); break; case "image" : if (!empty($_FILES['image']['name'])) {$img = upload($_FILES['image']);} insere_image($_POST['id'], $img); affiche_formulaire_modif_newsletter($_POST['id']); break; case "del_img" : sup_image($_GET['idim']); affiche_formulaire_modif_newsletter($_GET['id']); break; case "send" : $limit=250; // nombre de messages envoyés pas boucles. if(!isset($debut)) {$debut=0;} else {$debut = intval($_GET['debut']);} $id = intval($_GET['id']); $nabo = intval($_GET['nabo']); send_newsletter($id, $debut, $limit, $nabo); break; case "sendtest" : $id = intval($_GET['id']); send_newsletter_test($id); break; case "maj" : maj_newsletter($_POST['id'], $_POST); affiche_liste_newsletter($start); break; default : affiche_liste_newsletter($start); break; } include("modeles/bas.php"); /****************************************************************************** * FONCTIONS *****************************************************************************/ function affiche_formulaire_ajout_newsletter() { /* Affiche un formulaire vierge pour ajouter un newsletter */ global $frm; /* Valeurs par défaut */ $frm['nouveau_mode'] = "insere"; $frm['id'] = ""; $frm['sujet'] = ""; $frm['message'] = ""; $frm['format'] = "txt"; $frm['titre_bouton'] = "Ajouter une newsletter"; affiche_formulaire_newsletter(); } function affiche_formulaire_modif_newsletter($id) { /* Affiche le formulaire de modification pour le newsletter sélectionné */ global $frm; /* Charge les informations du produit */ $qid = mysql_query_override(" SELECT * FROM gaia_newsletter WHERE id = $id "); $frm = mysql_fetch_array_override($qid); $frm['id'] = $id; $frm["nouveau_mode"] = "maj"; $frm["titre_bouton"] = "Sauvegarder changements"; affiche_formulaire_newsletter(); } function affiche_formulaire_newsletter() { GLOBAL $frm,$wwwroot; GLOBAL $repertoire_upload; ?> <form name="entryform" method="post" action="<?=$_SERVER['PHP_SELF']?>?start=0"> <input type="hidden" name="mode" value="<?=$frm["nouveau_mode"]?>"> <input type="hidden" name="id" value="<?=$frm['id']?>"> <table cellpadding="0" cellspacing="5" border=0 width="100%"> <tr> <td class="entete">Ajouter ou modifier une newsletter</td> </tr> <tr> <td class="normal">Sujet :</td> </tr> <tr> <td><input class="formulaire1" format="text" name="sujet" style="width:100%" value="<?=$frm['sujet'] ?>"></td> </tr> <tr> <td class="normal">Message :</td> </tr> <tr> <td><textarea class="formulaire1" name="message" rows="20" cols="50"><?echo stripslashes($frm['message'])?></textarea></td> </tr> <input type="hidden" name="format" value="html"> <tr> <td><input class="bouton" type="submit" value="<?=$frm["titre_bouton"] ?>"></td> </tr> </table> </form> <? } function supprime_newsletter($id) { /* Supprime le newsletter spécificié par $id. Il faut supprimer le newsletter * puis les entrées correspondantes de la table newsletter_categories. */ $qid = mysql_query_override(" SELECT * FROM gaia_newsletter WHERE id = $id "); $n = mysql_fetch_array_override($qid); /* Efface le newsletter */ $qid = mysql_query_override("DELETE FROM gaia_newsletter WHERE id = $id"); /* Efface ce newsletter de la table produits_newsletter */ $qid = mysql_query_override(" DELETE FROM gaia_produits_newsletters WHERE newsletter_id = $id"); ?> <p class="normal"> La newsletter a été effacée. </p> <? } function insere_newsletter($id, $frm) { /*ajoute le newsletter dans la table newsletter */ $qid = mysql_query_override(" INSERT INTO gaia_newsletter ( sujet , message , date , format , statut ) VALUES ( '".addslashes($frm['sujet'])."' , '".addslashes($frm['message'])."' , now() ,'".htmlspecialchars($frm['format'])."' ,'envoi nok' ) "); } function insere_image($id, $frm) { /*ajoute le newsletter dans la table newsletter */ $qid = mysql_query_override(" INSERT INTO gaia_newsletter_images ( id_news , image ) VALUES ( '".$id."' , '".addslashes($frm)."' ) "); } function sup_image($idim) { global $dirroot; /*ajoute le newsletter dans la table newsletter */ $qid = mysql_query_override("select * from gaia_newsletter_images where id='$idim'"); $img = mysql_result_override($qid, 0, 'image'); unlink($dirroot.'/upload/'.$img); $qid = mysql_query_override("delete from gaia_newsletter_images where id='$idim'"); } function maj_newsletter($id, $frm) { /* Met à jour le newsletter $id avec de nouvelles valeurs. Les champs sont dans $frm */ /* Met à jour la table newsletter */ $qid = mysql_query_override(" UPDATE gaia_newsletter SET sujet = '".addslashes($frm['sujet'])."' , message = '".addslashes($frm['message'])."' , format = '".htmlspecialchars($frm['format'])."' , date = now() WHERE id = '".$id."' "); } function send_newsletter($id, $debut, $limit, $nabo) { global $start; $format = htmlspecialchars($_GET['format']); /* Récupération des données de la newsletter */ $sql_n = "SELECT * FROM gaia_newsletter WHERE id = '".$id."'"; $res_n = mysql_query_override($sql_n); $n = mysql_fetch_object_override($res_n); $format = stripslashes($n->format); $sujet = stripslashes($n->sujet); $message = stripslashes($n->message); /* Récupération de la liste des emails */ $sql_u = "SELECT email FROM gaia_newsletter_abo LIMIT $debut,$limit"; $res_u = mysql_query_override($sql_u) OR print mysql_error(); while($row = mysql_fetch_row_override($res_u)) { if( send_email_confirm($row[0], $sujet , $message, $format, $id)) { $fc = fopen("sending.log", "a+"); $w = fwrite ($fc, "[".$row[0]."]\t\t\t OK\n<br />" ); fclose($fc); } else { $fc = fopen("sending.log", "a+"); $w = fwrite ($fc, "[".$row[0]."]\t\t\t NOK\n<br />" ); fclose($fc); } } $deb = $debut+$limit; if ($deb<=$nabo) { //send_newsletter($id, $deb, $limit, $nabo); } else { mysql_query_override("UPDATE gaia_newsletter SET statut = 'envoi ok', date_envoi = now() WHERE id = '".$n->id."'"); echo "La newsletter $id a été envoyée"; affiche_liste_newsletter($start); } } function send_newsletter_test($id) { global $start, $support; /* Récupération des données de la newsletter */ $sql_n = "SELECT * FROM gaia_newsletter WHERE id = '".$id."'"; $res_n = mysql_query_override($sql_n); $n = mysql_fetch_object_override($res_n); $format = stripslashes($n->format); $sujet = stripslashes($n->sujet); $message = stripslashes($n->message); $support = 'jsabat@wagaia.com'; send_email_confirm($support, $sujet , $message, $format, $id); echo "La newsletter $id a été envoyée en format test"; affiche_liste_newsletter($start); } function affiche_liste_newsletter($start) { ?> <table border=0 cellpadding=0 cellspacing=1 width=100%> <tr> <td class="entete" colspan="9">Gérer les newsletters</td> </tr> <tr> <td colspan="9"> <a class="normal" href="<?=$_SERVER['PHP_SELF']?>?mode=ajout"> Ajouter une newsletter</a></td> </tr> <? $result=mysql_query_override("SELECT id, sujet, date, format, statut, date_envoi FROM gaia_newsletter ORDER BY date"); if (mysql_num_rows_override($result) == 0) {echo "<tr><td class=normal><b>Aucune newsletter enregistrée dans la base.</b></td></tr>"; } else { ?> <tr bgcolor="#6699ff"> <td class="menu">Action</td> <td class="menu">Nom de la newsletter</td> <td class="menu">Date de la newsletter</td> <td class="menu">Nb d'abonnés</td> <td class="menu">Format</td> <td class="menu">Statut</td> <td class="menu">Date d'envoi</td> <td class="menu">Envoyer</td> <td class="menu">Tester</td> </tr> <? $i = 0; while ($ligne = mysql_fetch_array_override($result)) { ?> <tr bgcolor="<?echo ($i % 2 == 0 ? '#F4F4F4' : '#ffffff' );?>"> <td class=petit><a class=petit onClick="Javascript:return confirm('êtes-vous sûr de vouloir supprimer la newsletter ?');" title="Supprimer <?=stripslashes($ligne['sujet']) ?>" href="<?=$_SERVER['PHP_SELF']?>?mode=suppr&id=<?=$ligne['id'] ?>"><i class="ti-close"></i></a></td> <td class=petit><a class=petit title="Modifier ce newsletter" href="<?=$_SERVER['PHP_SELF']?>?mode=modif&id=<?=$ligne['id'] ?>"><?=stripslashes($ligne['sujet']) ?></a></td> <td class=petit align="center"><?=return_date_fr($ligne['date']) ?></td> <td class=petit align="center"> <?php $sql_u = "SELECT * FROM gaia_newsletter_abo "; $res_u = mysql_query_override($sql_u) OR print mysql_error(); $nabo = mysql_num_rows_override($res_u); echo $nabo; ?> </td> <td class=petit align="center"><?=$ligne['format'] ?></td> <td class=petit align="center"><?=$ligne['statut'] ?></td> <td class=petit align="center"><?=$ligne['date_envoi'] ?></td> <td class=petit align="center"><a href="<?echo $_SERVER['PHP_SELF']?>?mode=send&id=<?=$ligne['id']?>&format=<?=$ligne['format']?>&nabo=<?=$nabo?>&debut=0"><img onClick="Javascript:return confirm('êtes-vous sûr de vouloir envoyer cette newsletter ?');" src="images/mail.gif" alt="newsletter" border="0"></a></td> <td class=petit align="center"><a href="<? echo $_SERVER['PHP_SELF']?>?mode=sendtest&id=<?=$ligne['id']?>&format=<?=$ligne['format']?>&nabo=<?=$nabo?>"><img src="images/mail.gif" alt="newsletter" border="0"></a></td> </tr> <? $i++; } } echo "</table>"; } ?>