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
--- /dev/null
+[valid_alias]
+from=Equipe Polytechnique.org <validation+melix@polytechnique.org>
+cc=Equipe Polytechnique.org <validation+melix@polytechnique.org>
<?
-/*** Validation des alias **/
-
-// Adresse d'alias telle qu'elle apparaîtra dans la base de données
-function addr_alias($nomAlias) {
- global $globals ;
- return $nomAlias.'@'.$globals->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() {
!!! | 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
$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);
--- /dev/null
+<?php
+require_once("diogenes.mailer.inc.php");
+require_once("Smarty.class.php");
+
+/** Classe de mail avec corps en templates.
+ */
+class TplMailer extends Smarty {
+ var $mail_dir = "mails";
+ var $_tpl;
+
+ var $_from;
+ var $_to = Array();
+ var $_cc = Array();
+ var $_bcc = Array();
+ var $_subject;
+
+ function TplMailer($tpl) {
+ global $globals;
+ $this->_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'];
+}
+?>
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
<form action="{$_SERVER['PHP_SELF']}" method="POST">
<input type="hidden" name="uid" value="{$this->uid}" />
|| ($_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();
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");
}
--- /dev/null
+{* $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: *}