bug 255 : relance des adresses connues pour les non inscrits
authorPascal Corpet <pascal.corpet@m4x.org>
Mon, 17 Jan 2005 16:12:52 +0000 (16:12 +0000)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Thu, 26 Jun 2008 21:27:46 +0000 (23:27 +0200)
git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-374

htdocs/marketing/private.php
include/marketing.inc.php
include/validations/marketing.inc.php
templates/marketing/private.tpl

index 90ab01a..0b3f11d 100644 (file)
@@ -41,6 +41,23 @@ if (Env::has('del')) {
     $globals->xdb->execute('DELETE FROM register_marketing WHERE uid={?} AND email={?}', $uid, Env::get('del'));
 }
 
+if (Env::has('rel') && !Env::has('valider')) {
+    require_once('marketing.inc.php');
+    list($to, $title, $text) = mark_text_mail($uid, Env::get('rel'));
+    $from = mark_from_mail($uid, Env::get('rel'));
+    $page->assign('rel_from_user', $from);
+    $page->assign('rel_from_staff', "\"Equipe Polytechnique.org\" <register@polytechnique.org>");
+    $page->assign('rel_to', $to);
+    $page->assign('rel_title', $title);
+    $page->assign('rel_text', $text);
+}
+
+if (Env::get('valider') == 'Envoyer') {
+    require_once('marketing.inc.php');
+    mark_send_mail($uid, Env::get('rel'), Env::get('from'), Env::get('to'), Env::get('title'), Env::get('message'));
+    $page->trig("Mail envoyé");
+}
+
 if (Env::has('relance')) {
     require_once('marketing.inc.php');
     if (relance($uid)) {
@@ -64,4 +81,6 @@ if (list($pending, $relance) = $res->fetchOneCell()) {
 
 
 $page->run();
+
+// vim:set et sw=4 sws=4 sts=4:
 ?>
index 3443cca..899b3a7 100644 (file)
 
 require_once("xorg.misc.inc.php");
 
-// {{{ function mark_send_mail
+// {{{ function mark_from_mail
+function mark_from_mail($uid, $email) {
+    global $globals;
+    $res = $globals->xdb->query(
+        "SELECT u.nom, u.prenom, a.alias
+           FROM register_marketing  AS r
+     INNER JOIN auth_user_md5       AS u ON (r.sender = u.user_id)
+     INNER JOIN aliases             AS a ON (a.id = r.sender AND a.type='a_vie')
+          WHERE r.uid = {?} AND r.email = {?}",
+        $uid, $email);
+    $sender = $res->fetchOneAssoc();
+    return "\"".$sender['prenom']." ".$sender['nom']."\" <".$sender['alias']."@polytechnique.org>";
+    
+}
+// }}}
+
+// {{{ function mark_text_mail
 
-function mark_send_mail($uid, $email, $envoyeur, $email_envoyeur)
+function mark_text_mail($uid, $email)
 {
-    require_once("diogenes/diogenes.hermes.inc.php");
     global $globals;
-    
-    $hash = rand_url_id(12);
-    $globals->xdb->execute('UPDATE register_marketing SET nb=nb+1,hash={?},last=NOW() WHERE uid={?} AND email={?}', $hash, $id, $email);
+    $title = "Annuaire en ligne des Polytechniciens";
 
     $res = $globals->xdb->query("SELECT COUNT(*) FROM auth_user_md5 WHERE perms IN ('admin', 'user') and deces = 0");
     $num_users = $res->fetchOneCell();
@@ -39,11 +52,13 @@ function mark_send_mail($uid, $email, $envoyeur, $email_envoyeur)
 
     $mailorg = make_forlife($u['prenom'],$u['nom'],$u['promo']);
 
+    $to = "\"".$u['prenom']." ".$u['nom']."\" <".$email.">";
+
     $titre = "Annuaire en ligne des Polytechniciens";
     $text  = "   ".($u['flags']?"Chère":"Cher")." camarade,\n\n";
     $text .= "   Ta fiche n'est pas à jour dans l'annuaire des Polytechniciens sur Internet. Pour la mettre à jour, il te suffit de visiter cette page ou de copier cette adresse dans la barre de ton navigateur :\n\n";
     $text .= "==========================================================\n";
-    $text .= $globals->baseurl."/register/?hash=".$hash."\n";
+    $text .= $globals->baseurl."/register/?hash=%%hash%%\n";
     $text .= "==========================================================\n\n";
     $text .= "Il ne te faut que 5 minutes sur http://www.polytechnique.org/ pour rejoindre les $num_users camarades branchés grâce au système de reroutage de l'X et qui permet de joindre un camarade en connaissant seulement son nom et son prénom... et de bénéficier pour la vie d'une adresse prestigieuse $mailorg@polytechnique.org et son alias discret $mailorg@m4x.org (m4x = mail for X).\n\n";
     $text .= "Pas de nouvelle boîte aux lettres à relever, il suffit de la rerouter vers ton adresse personnelle et/ou professionnelle que tu indiques et que tu peux changer tous les jours si tu veux sans imposer à tes correspondants de modifier leur carnet d'adresses...\n\n";
@@ -51,17 +66,41 @@ function mark_send_mail($uid, $email, $envoyeur, $email_envoyeur)
     $text .="N'hésite pas à transmettre ce message à tes camarades ou à nous écrire, nous proposer toute amélioration ou suggestion pour les versions prochaines du site.\n\n";
     $text .= "A bientôt sur http://www.polytechnique.org !\n";
     $text .= "Bien à toi,\n";
-    $text .= $envoyeur."\n\n";
+    $text .= "%%sender%%\n\n";
     $text .= "--\n";
     $text .= "Polytechnique.org\n";
     $text .= "\"Le portail des élèves & anciens élèves de l'X\"\n";
     $text .= "http://www.polytechnique.org/\n";
     $text .= "http://www.polytechnique.net/\n";
+    return array($to, $title, $text);
+}
+// }}}
+
+// {{{ function mark_send_mail()
+
+function mark_send_mail($uid, $email, $perso, $to='', $title='', $text='') 
+{
+    require_once("diogenes/diogenes.hermes.inc.php");
+    global $globals;
+
+    $hash = rand_url_id(12);
+    $globals->xdb->execute('UPDATE register_marketing SET nb=nb+1,hash={?},last=NOW() WHERE uid={?} AND email={?}', $hash, $uid, $email);
+    if ($to == '')
+        list($to, $title, $text) = mark_text_mail($uid, $email);
+
+    if ($perso == 'staff')
+        $from = "\"Equipe Polytechnique.org\" <register@polytechnique.org>";
+    else
+        $from = mark_from_mail($uid, $email);
     
+    $sender = substr($from, 1, strpos($from, '"', 2)-1);
+    $text = str_replace(array("%%hash%%", "%%sender%%"), array($hash, $sender), $text);
+
     $mailer = new HermesMailer();
-    $mailer->setFrom($envoyeur." <".$email_envoyeur.">");
-    $mailer->addTo("\"{$u['prenom']} {$u['nom']}\" <{$email}>");
-    $mailer->setSubject($titre);
+    $mailer->setFrom($from);
+    $mailer->addTo($to);
+    $mailer->setSubject($title);
     $mailer->setTxtBody(wordwrap($text, 80));
     $mailer->send();
 }
@@ -109,4 +148,6 @@ function relance($uid, $nbx = -1)
 }
 
 // }}}
+
+// vim:set et sw=4 sts=4 sws=4:
 ?>
index c07ca6b..7b4bf5b 100644 (file)
@@ -83,9 +83,7 @@ class MarkReq extends Validate
     {
         global $globals;
         require_once('marketing.inc.php');
-        mark_send_mail($this->m_id, $this->m_email,
-            (!$this->perso)?"Equipe Polytechnique.org":($this->prenom." ".$this->nom),
-            (!$this->perso?"register":$this->bestalias)."@polytechnique.org");
+        mark_send_mail($this->m_id, $this->m_email,(!$this->perso)?"staff":"user");
         return true;
     }
 
index ee8c328..b0c2778 100644 (file)
@@ -67,7 +67,8 @@ sa derni
     <td>{$a.last|date_format|default:'-'}</td>
     <td class='center'>{$a.nb|default:"-"}</td>
     <td class='action'>
-      <a href='?uid={$smarty.request.uid}&amp;del={$a.email}'>del</a>
+      <a href='?uid={$smarty.request.uid}&amp;del={$a.email}'>del</a><br />
+      <a href='?uid={$smarty.request.uid}&amp;rel={$a.email}'>relance</a>
     </td>
   </tr>
   {/iterate}
@@ -77,4 +78,44 @@ sa derni
   </tr>
 </table>
 
+{if $rel_to}
+<form action="{$smarty.request.PHP_SELF}" method="post">
+  <table class="bicol">
+    <tr class="pair">
+      <th colspan="2">Edition du mail de relance</th>
+    </tr>
+    <tr class="pair">
+      <td align="right"><strong>From:</strong></td>
+      <td><select name="from">
+        <option value="staff">{$rel_from_staff}</option>
+        <option value="user">{$rel_from_user}</option>
+      </select></td>
+    </tr>
+    <tr class="pair">
+      <td align="right"><strong>To:</strong></td>
+      <td>
+        <input type="text" value="{$rel_to}" name="to" size="40" maxlength="100" />
+        <input type="submit" name="valider" value="Envoyer" />
+      </td>
+    </tr>
+    <tr class="pair">
+      <td align="right"><strong>Objet:</strong></td>
+      <td><input type="text" name="title" value="{$rel_title}" size="50" maxlength="100" /></td>
+    </tr>
+    <tr class="pair">
+      <td align="right"><strong>Message:</strong></td>
+      <td>
+        <textarea name="message" rows="40" cols="60">{$rel_text}</textarea>
+      </td>
+    </tr>
+  </table>
+  <div class="center">
+    <input type="hidden" name="uid" value="{$smarty.request.uid}" />
+    <input type="hidden" name="email" value="{$smarty.request.rel}" />
+    <input type="reset" value="Recommencer" />
+    <input type="submit" name="valider" value="Envoyer" />
+  </div>
+</form>
+{/if}
+
 {* vim:set et sw=2 sts=2 sws=2: *}