X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Femails.combobox.inc.php;h=546063bbe64640a409e03481dacaa9f3a55242c2;hb=671b7073a0debbd347e7276f44fa04c961693f4c;hp=2de4a2e2dd67e7d5f03fa52db585ff575239886f;hpb=43b816c7ed20f3b1dbb5c8b6971d8582016a7a86;p=platal.git diff --git a/include/emails.combobox.inc.php b/include/emails.combobox.inc.php index 2de4a2e..546063b 100644 --- a/include/emails.combobox.inc.php +++ b/include/emails.combobox.inc.php @@ -19,90 +19,91 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************/ -function fill_email_combobox(PlPage& $page) +function fill_email_combobox(PlPage& $page, $user = null, $profile = null) { global $globals; - $user = S::user(); + if (is_null($user) && is_null($profile)) { + $user = S::user(); + $profile = $user->profile(); + } $email_type = "directory"; - $res = XDB::query( - "SELECT email_directory - FROM profile_directory - WHERE uid = {?}", $user->id()); - $email_directory = $res->fetchOneCell(); - if ($email_directory) { - $page->assign('email_directory', $email_directory); - list($alias, $domain) = explode('@', $email_directory); - } else { - $page->assign('email_directory', ''); - $email_type = NULL; - $alias = $domain = ''; + if ($profile) { + $res = XDB::query( + "SELECT email_directory + FROM profile_directory + WHERE uid = {?}", $profile->id()); + $email_directory = $res->fetchOneCell(); + if ($email_directory) { + $page->assign('email_directory', $email_directory); + list($alias, $domain) = explode('@', $email_directory); + } else { + $page->assign('email_directory', ''); + $email_type = NULL; + $alias = $domain = ''; + } } - $res = XDB::query( - "SELECT alias - FROM virtual - INNER JOIN virtual_redirect USING(vid) - WHERE (redirect = {?} OR redirect = {?}) - AND alias LIKE '%@{$globals->mail->alias_dom}'", - $user->forlifeEmail(), - // TODO: remove this über-ugly hack. The issue is that you need - // to remove all @m4x.org addresses in virtual_redirect first. - $user->login() . '@' . $globals->mail->domain2); - $melix = $res->fetchOneCell(); - if ($melix) { - list($melix) = explode('@', $melix); - $page->assign('melix', $melix); - if (($domain == $globals->mail->alias_dom) || ($domain == $globals->mail->alias_dom2)) { - $email_type = "melix"; + if ($user) { + $melix = $user->emailAlias(); + if ($melix) { + list($melix) = explode('@', $melix); + $page->assign('melix', $melix); + if (($domain == $globals->mail->alias_dom) || ($domain == $globals->mail->alias_dom2)) { + $email_type = "melix"; + } } - } - $res = XDB::query( - "SELECT alias - FROM aliases - WHERE id={?} AND (type='a_vie' OR type='alias')", $user->id()); - $res = $res->fetchAllAssoc(); - $page->assign('list_email_X', $res); - if (($domain == $globals->mail->domain) || ($domain == $globals->mail->domain2)) { - foreach ($res as $res_it) { - if ($alias == $res_it['alias']) { - $email_type = "X"; + $res = XDB::query( + "SELECT alias + FROM aliases + WHERE id={?} AND (type='a_vie' OR type='alias')", $user->id()); + $res = $res->fetchAllAssoc(); + $page->assign('list_email_X', $res); + if (($domain == $globals->mail->domain) || ($domain == $globals->mail->domain2)) { + foreach ($res as $res_it) { + if ($alias == $res_it['alias']) { + $email_type = "X"; + } } } - } - require_once 'emails.inc.php'; - $redirect = new Redirect($user); - $redir = array(); - foreach ($redirect->emails as $redirect_it) { - if ($redirect_it instanceof EmailRedirection) { - $redir[] = $redirect_it->email; - if ($email_directory == $redirect_it->email) { - $email_type = "redir"; + require_once 'emails.inc.php'; + $redirect = new Redirect($user); + $redir = array(); + foreach ($redirect->emails as $redirect_it) { + if ($redirect_it instanceof EmailRedirection) { + $redir[] = $redirect_it->email; + if ($email_directory == $redirect_it->email) { + $email_type = "redir"; + } } } - } - $page->assign('list_email_redir', $redir); + $page->assign('list_email_redir', $redir); - $res = XDB::query( - "SELECT email - FROM profile_job - WHERE uid = {?}", $user->id()); - $res = $res->fetchAllAssoc(); - $pro = array(); - foreach ($res as $res_it) { - if ($res_it['email'] != '') { - $pro[] = $res_it['email']; - if ($email_directory == $res_it['email']) { - $email_type = "pro"; + $res = XDB::query( + "SELECT email + FROM profile_job + WHERE uid = {?}", $user->id()); + $res = $res->fetchAllAssoc(); + $pro = array(); + foreach ($res as $res_it) { + if ($res_it['email'] != '') { + $pro[] = $res_it['email']; + if ($email_directory == $res_it['email']) { + $email_type = "pro"; + } } } - } - $page->assign('list_email_pro', $pro); + $page->assign('list_email_pro', $pro); + $page->assign('email_type', $email_type); - $page->assign('email_type', $email_type); + } else { + $page->assign('list_email_X', array()); + $page->assign('list_email_redir', array()); + $page->assign('list_email_pro', array()); + } } // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: