From: x2000habouzit Date: Thu, 5 Feb 2004 18:00:20 +0000 (+0000) Subject: mise en place d'une classe de mailer en _templates_. X-Git-Tag: xorg/old~1899 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=9956d554062185376c4d2b24b38b57cf3016a006;p=platal.git mise en place d'une classe de mailer en _templates_. j'ai passé ainsi la validation des alias avec des _configs_ prorpres. j'ai détruit une config de guillaume (à savoir melix.net est nouveau en dur, mais c'est un détail par rapport aux pbs résolus ainsi). il reste à passer les valid_* sur le même principe (la conf se faisant dans mails.conf) voilà, je vous laisse regarder tout ca, y'a du bon boulot de fait, c _vraiment_ dans l'esprit templates comme ca. PS: le fonctionnement est pas forcément très intuitif, regardez le tempalte du mail pour comprendre, je ferai une doc un de ces jours ... PPS: je sais que le retour en arrière p/r au boulot de guillaume est pas sympa, mais c pas censé rester comme ca, je reviendrai à une conf propre bien entendu ! mais je pense que ce genre de choses doivent êtr dans un fichier style globals.conf et être toujours loadé par les pages Xorg* donc c'est un nouveau morceau de dev que je n'ai pas voulu faire --- diff --git a/configs/mails.conf b/configs/mails.conf new file mode 100644 index 0000000..fd86546 --- /dev/null +++ b/configs/mails.conf @@ -0,0 +1,3 @@ +[valid_alias] +from=Equipe Polytechnique.org +cc=Equipe Polytechnique.org diff --git a/configs/valid.conf.php b/configs/valid.conf.php index ba66bbf..5e5858e 100644 --- a/configs/valid.conf.php +++ b/configs/valid.conf.php @@ -1,60 +1,4 @@ domaine_mail_alias[0] ; -} - -function from_mail_valid_alias() { - global $globals ; - return "Equipe Polytechnique.org <".$globals->addr_mail_valid_alias.">" ; -} - -function to_mail_valid_alias ($nomUser) { - global $globals ; - return $nomUser.'@'.$globals->domaine_mail ; -} - -function subject_mail_valid_alias ($nomUser,$nomAlias) { - global $globals ; - return "[Polytechnique.org/MELIX] Demande de l'alias ". - addr_alias($nomAlias)." par $nomUser" ; -} - -function cc_mail_valid_alias() { - global $globals ; - return $globals->addr_mail_valid_alias ; -} - -function msg_valid_alias_OK ($nomAlias) { - global $globals ; - $msg = "Cher(e) camarade,\n". - "\n". - " Les adresses e-mail $nomAlias@melix.net et $nomAlias@melix.org que ". - "tu avais demandées viennent d'être créées, tu peux désormais les ". - "utiliser à ta convenance.\n". - "\n". - "Cordialement,\n". - "L'équipe X.org" ; - return $msg ; -} - -function msg_valid_alias_NON ($nomAlias,$motif) { - $msg = "Cher(e) camarade,\n". - "\n". - " La demande que tu avais faite pour les alias $nomAlias@melix.net et $nomAlias@melix.org ". - "a été refusée pour la raison suivante :\n". - $motif. - "\n". - "Cordialement,\n". - "L'équipe X.org" ; - return $msg ; -} - - - /*** Validation des offres d'emploi ***/ function from_mail_valid_emploi() { diff --git a/etat_migration b/etat_migration index c9e3794..ed8fbbd 100644 --- a/etat_migration +++ b/etat_migration @@ -134,15 +134,15 @@ Etat | Ancien nom | Nouveau nom !!! | news/thread.php | / !!! | confbanana.php | -> dépend de banana, à passer plus tard ... ------+-[ trackers ]------------------------------+---------------- - x | trackers/tracker_show.php | - - x | trackers/tracker_show_rq.php | - + | trackers/tracker_show.php | - + | trackers/tracker_show_rq.php | - + | trackers/index.php | - + | trackers/tracker_admin.php | - ------+-------------------------------------------+---------------- @@@ | groupex/donne-chall.php | - @@@ | groupex/export-econfiance.php | - x | epouse.php | - x | parselog.php | stats/... -x | trackers/index.php | - -x | trackers/tracker_admin.php | - xx | AccesPermanentOff.php | cookie_off.php xx | AccesPermanentOn.php | cookie_on.php xx | acces_redirect.php | carva_redirect.php diff --git a/include/auto.prepend.inc.php b/include/auto.prepend.inc.php index cdfb162..785714a 100644 --- a/include/auto.prepend.inc.php +++ b/include/auto.prepend.inc.php @@ -23,6 +23,7 @@ function _new_page($type, $tpl_name, $tpl_head, $min_auth, $popup=false, $admin= $page->template_dir = $globals->spoolroot . "/templates/"; $page->compile_dir = $globals->spoolroot . "/templates_c/"; $page->plugins_dir[]= $globals->spoolroot . "/plugins/"; + $page->config_dir = $globals->spoolroot . "/configs/"; $page->cache_dir = $globals->spoolroot . "/cache/"; $page->assign('xorg_head', $tpl_head); diff --git a/include/tpl.mailer.inc.php b/include/tpl.mailer.inc.php new file mode 100644 index 0000000..81d7870 --- /dev/null +++ b/include/tpl.mailer.inc.php @@ -0,0 +1,65 @@ +_tpl = $tpl; + $this->caching=false; + $this->compile_check=true; + + $this->template_dir = $globals->spoolroot . "/templates/"; + $this->compile_dir = $globals->spoolroot . "/templates_c/"; + $this->config_dir = $globals->spoolroot . "/configs/"; + + $this->register_outputfilter('mail_format'); + $this->register_function('from', 'set_from'); + $this->register_function('to', 'set_to'); + $this->register_function('cc', 'set_cc'); + $this->register_function('bcc', 'set_bcc'); + $this->register_function('subject', 'set_subject'); + } + + function send() { + $body = $this->fetch($this->mail_dir."/".$this->_tpl); + $mailer = new DiogenesMailer($this->_from, implode(',',$this->_to), + $this->_subject, false, + implode(',',$this->_cc), implode(',',$this->_bcc)); + $mailer->setBody($body); + $mailer->send(); + } +} + +function mail_format($output, &$smarty) { + return wordwrap("\n".trim($output)."\n",75); +} + +function format_addr(&$params) { + if(isset($params['full'])) + return $params['full']; + if(empty($params['text'])) + return $params['addr']; + else + return $params['text'].' <'.$params['addr'].'>'; +} + +function set_from($params, &$smarty) { $smarty->_from = format_addr($params); } +function set_to($params, &$smarty) { $smarty->_to[] = format_addr($params); } +function set_cc($params, &$smarty) { $smarty->_cc[] = format_addr($params); } +function set_bcc($params, &$smarty) { $smarty->_bcc[] = format_addr($params); } +function set_subject($params, &$smarty) { + $smarty->_subject = $params['text']; +} +?> diff --git a/include/valid_aliases.inc.php b/include/valid_aliases.inc.php index be61ed9..d4c1bd1 100644 --- a/include/valid_aliases.inc.php +++ b/include/valid_aliases.inc.php @@ -27,7 +27,7 @@ class AliasReq extends Validate { function formu() { $old = $this->old ? "({$this->old})" : ""; $raison = nl2br(stripslashes(htmlentities($this->raison))); - $newAlias = addr_alias( $this->alias ) ; + $newAlias = $this->alias.'@melix.net'; return <<<________EOF
@@ -75,22 +75,18 @@ ________EOF; || ($_REQUEST['submit']!="Accepter" && $_REQUEST['submit']!="Refuser")) return false; - require_once("diogenes.mailer.inc.php"); - $mymail = new DiogenesMailer( - from_mail_valid_alias(), - to_mail_valid_alias( $this->username ), - subject_mail_valid_alias( $this->username , $this->alias ), - false, - cc_mail_valid_alias()); + require_once("tpl.mailer.inc.php"); + $mymail = new TplMailer('valid.alias.tpl'); + $mymail->assign('alias', $this->alias); + $mymail->assign('username', $this->username); if($_REQUEST['submit']=="Accepter") { + $mymail->assign('answer', 'yes'); $this->commit() ; - $message = msg_valid_alias_OK( $this->alias ) ; - } else - $message = msg_valid_alias_NON( $this->alias , stripslashes($_REQUEST["motif"]) ) ; - - $message = wordwrap($message,78); - $mymail->setBody($message); + } else { + $mymail->assign('answer', 'no'); + $mymail->assign('motif', stripslashes($_REQUEST['motif'])); + } $mymail->send(); //Suppression de la demande $this->clean(); @@ -101,7 +97,7 @@ ________EOF; global $no_update_bd; if($no_update_bd) return false; - $domain=addr_alias( $this->alias ) ; + $domain=$this->alias.'@melix.net'; mysql_query("DELETE FROM groupex.aliases WHERE id=12 AND email='{$this->username}'"); mysql_query("INSERT INTO groupex.aliases SET email='{$this->username}',domain='$domain',id=12"); } diff --git a/templates/mails/valid.alias.tpl b/templates/mails/valid.alias.tpl new file mode 100644 index 0000000..e6ec228 --- /dev/null +++ b/templates/mails/valid.alias.tpl @@ -0,0 +1,24 @@ +{* $Id: valid.alias.tpl,v 1.1 2004-02-05 18:00:21 x2000habouzit Exp $ *} +{config_load file="mails.conf" section="valid_alias"} +{subject text="[Polytechnique.org/MELIX] Demande de l'alias $alias@melix.net par $username"} +{from full=#from#} +{to addr="$username@polytechnique.org"} +{cc full=#cc#} +{if $answer eq "yes"} +Cher(e) camarade, + + Les adresses e-mail {$alias}@melix.net et {$alias}@melix.org que tu avais demandées viennent d'être créées, tu peux désormais les utiliser à ta convenance. + +Cordialement, +L'équipe X.org +{elseif $answer eq 'no'} + +Cher(e) camarade, + + La demande que tu avais faite pour les alias {$alias}@melix.net et {$alias}@melix.org a été refusée pour la raison suivante : +{$motif} + +Cordialement, +L'équipe X.org +{/if} +{* vim:set nocindent noautoindent textwidth=0: *}