X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Flists.php;h=95efd3ffa0030f3b1481360254aa449bcf34e979;hb=1555e55e27902bff773ed3c879cb9cf6b3d78c96;hp=16d7de9de70d42d7f024eb21a39f70c0ceec698a;hpb=59887c4a8a1f014c1f4107c43deda0d1be994f5d;p=platal.git diff --git a/modules/lists.php b/modules/lists.php index 16d7de9..95efd3f 100644 --- a/modules/lists.php +++ b/modules/lists.php @@ -159,6 +159,8 @@ class ListsModule extends PLModule function handler_create(&$page) { + global $globals; + $page->changeTpl('lists/create.tpl'); $owners = preg_split("/[\s]+/", Post::v('owners'), -1, PREG_SPLIT_NO_EMPTY); @@ -182,21 +184,32 @@ class ListsModule extends PLModule } // click on validate button 'add_member_sub' + require_once('user.func.inc.php'); if (Post::has('add_member_sub') && Post::has('add_member')) { - require_once('user.func.inc.php'); $forlifes = get_users_forlife_list(Post::v('add_member'), true); if (!is_null($forlifes)) { $members = array_merge($members, $forlifes); } } + if (Post::has('add_member_sub') && isset($_FILES['add_member_file']) && $_FILES['add_member_file']['tmp_name']) { + $upload =& PlUpload::get($_FILES['add_member_file'], S::v('forlife'), 'list.addmember', true); + if (!$upload) { + $page->trigError('Une erreur s\'est produite lors du téléchargement du fichier'); + } else { + $forlifes = get_users_forlife_list($upload->getContents(), true); + if (!is_null($forlifes)) { + $members = array_merge($members, $forlifes); + } + } + } ksort($owners); $owners = array_unique($owners); ksort($members); $members = array_unique($members); - $page->assign('owners', join(' ', $owners)); - $page->assign('members', join(' ', $members)); + $page->assign('owners', join("\n", $owners)); + $page->assign('members', join("\n", $members)); if (!Post::has('submit')) { return; @@ -214,7 +227,7 @@ class ListsModule extends PLModule if (($asso == "binet") || ($asso == "alias")) { $promo = Post::i('promo'); - $domain = $promo . '.polytechnique.org'; + $domain = $promo . '.' . $globals->mail->domain; if (($promo < 1921) || ($promo > date('Y'))) { $page->trigError('La promotion est mal renseignée, elle doit être du type : 2004.'); @@ -238,14 +251,14 @@ class ListsModule extends PLModule $res = XDB::query('SELECT COUNT(*) FROM x4dat.virtual WHERE alias={?}', $new); } else { $res = XDB::query("SELECT COUNT(*) FROM aliases WHERE alias={?}", $liste); - $domain = "polytechnique.org"; + $domain = $globals->mail->domain; } } $n = $res->fetchOneCell(); if ($n) { - $page->trigError('Cette «adresse souhaitée» est déjà prise.'); + $page->trigError('L\'«adresse souhaitée» est déjà prise.'); } if (!Post::v('desc')) { @@ -597,6 +610,23 @@ class ListsModule extends PLModule } } + if (isset($_FILES['add_member_file']) && $_FILES['add_member_file']['tmp_name']) { + $upload =& PlUpload::get($_FILES['add_member_file'], S::v('forlife'), 'list.addmember', true); + if (!$upload) { + $page->trigError('Une erreur s\'est produite lors du téléchargement du fichier'); + } else { + $members = get_users_forlife_list($upload->getContents(), + false, + array('ListsModule', 'no_login_callback')); + $arr = $this->client->mass_subscribe($liste, $members); + if (is_array($arr)) { + foreach($arr as $addr) { + $page->trigSuccess("{$addr[0]} inscrit."); + } + } + } + } + if (Env::has('del_member')) { if (strpos(Env::v('del_member'), '@') === false) { $this->client->mass_unsubscribe(