X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fxnetgrp%2Fmail.inc.php;h=eadeb167a0eb80c4cc27e02333d67cd8ccb4fe4f;hb=3422f7193e38e67054d2ecda2f4a68b64bd310ef;hp=57514571eff7b454fc35666481061fdec112b2f1;hpb=2553b7686e0678b8e27858a7c377e73ecb410aec;p=platal.git diff --git a/modules/xnetgrp/mail.inc.php b/modules/xnetgrp/mail.inc.php index 5751457..eadeb16 100644 --- a/modules/xnetgrp/mail.inc.php +++ b/modules/xnetgrp/mail.inc.php @@ -1,6 +1,6 @@ "", u.nom, m.nom) AS nom, - IF(u.prenom <> "", u.prenom, m.prenom) AS prenom, - IF(m.email <> "", m.email, CONCAT(a.alias, "@polytechnique.org")) as email, - IF(m.sexe IS NULL, FIND_IN_SET("femme", u.flags), m.sexe) AS sexe - FROM groupex.membres AS m - LEFT JOIN auth_user_md5 AS u ON (m.uid=u.user_id AND m.uid<50000) - LEFT JOIN aliases AS a ON (a.id=u.user_id and a.type="a_vie") - WHERE asso_id = {?} - AND m.origine IN (' . $membres . ') - AND (m.email <> "" OR u.perms <> "pending")', $globals->asso('id')); - $tos = $res->fetchAllAssoc(); + $uf = new UserFilter(new UFC_Group($globals->asso('id'))); + $tos = $uf->getUsers(); } foreach ($mls as $ml) { if (list(,$members) = $client->get_members($ml)) { foreach ($members as $mem) { - list($m, $dom) = explode('@',$mem[1]); - if ($dom == $globals->mail->domain || $dom == $globals->mail->domain2) { - $res = XDB::query('SELECT prenom, nom, FIND_IN_SET("femme", u.flags) AS sexe - FROM auth_user_md5 AS u - INNER JOIN aliases AS a ON u.user_id = a.id - WHERE a.alias = {?}', $m); - if ($person = $res->fetchOneAssoc()) { - $person['email'] = $mem[1]; - $tos[] = $person; - } + $uf = new UserFilter(new UFC_Mail($mem[1])); + $user = $uf->getUsers(); + if ($user) { + $tos[] = $user; } else { - $res = XDB::query('SELECT prenom, nom, sexe FROM groupex.membres WHERE email={?}', $mem[1]); - if ($person = $res->fetchOneAssoc()) { - $person['email'] = $mem[1]; - $tos[] = $person; - } else { - $tos[] = array('email' => $mem[1]); - } + $tos[] = $mem[1]; } } } @@ -78,17 +55,19 @@ function get_all_redirects($membres, $mls, &$client) function _send_xnet_mail($user, $body, $wiki, $mailer, $replyto = null) { - $cher = isset($user['sexe']) ? ($user['sexe'] ? 'Chère' : 'Cher') : 'Cher(e)'; - $nom = isset($user['nom']) ? $user['nom'] : ""; - $pnom = isset($user['prenom']) ? $user['prenom'] : preg_replace('!@.*!u', '', $user['email']); - $to = isset($user['prenom']) ? "\"{$user['prenom']} {$user['nom']}\" <{$user['email']}>" : $user['email']; - - $text = $body; - $text = preg_replace('!!i', $cher, $text); - $text = preg_replace('!!i', $nom, $text); - $text = preg_replace('!!i', $pnom, $text); + if ($user instanceof PlUser) { + $dear = $user->isFemale() ? 'Chère' : 'Cher'; + $lastname = $user->lastName(); + $firstname = $user->firstName(); + } else { + $dear = 'Cher(e)'; + $lastname = ''; + $firstname = $user; + } - $mailer->addHeader('To', $to); + $text = str_ireplace(array('', '', ''), + array($dear, $lastname, $firstname), $body); + $mailer->setTo($user); if ($replyto) { $mailer->addHeader('Reply-To', $replyto); } @@ -116,9 +95,16 @@ function send_xnet_mails($from, $sujet, $body, $wiki, $tos, $replyto = null, $up } foreach ($tos as $user) { - if ($sent[$user['email']]) continue; - _send_xnet_mail($user, $body, $wiki, $mailer, $replyto); - $sent[$user['email']] = true; + if ($user instanceof $user) { + $email = $user->bestEmail(); + } else { + $email = $user; + } + + if (!isset($sent[$email])) { + _send_xnet_mail($user, $body, $wiki, $mailer, $replyto); + $sent[$email] = true; + } } }