From c0ced71802ba402743759c60603de5eefad1cb0a Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Jacob?= Date: Sun, 8 Apr 2012 19:39:57 +0200 Subject: [PATCH] Displays errors and warning on ML members addition. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Jacob --- modules/lists.php | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/modules/lists.php b/modules/lists.php index baed14f..abb5c66 100644 --- a/modules/lists.php +++ b/modules/lists.php @@ -656,19 +656,38 @@ class ListsModule extends PLModule if (Env::has('add_member')) { S::assert_xsrf_token(); - $members = User::getBulkForlifeEmails(Env::v('add_member'), + $logins = preg_split("/[; ,\r\n\|]+/", Env::v('add_member')); + $members = User::getBulkForlifeEmails($logins, true, array('ListsModule', 'no_login_callback')); + $unfound = array_diff_key($logins, $members); + // Make sure we send a list (array_values) of unique (array_unique) // emails. $members = array_values(array_unique($members)); $arr = $this->client->mass_subscribe($liste, $members); + + $successes = array(); if (is_array($arr)) { foreach($arr as $addr) { + $successes[] = $addr[1]; $page->trigSuccess("{$addr[0]} inscrit."); } } + + $already = array_diff($members, $successes); + if (is_array($already)) { + foreach ($already as $item) { + $page->trigWarning($item . ' est déjà inscrit.'); + } + } + + if (is_array($unfound)) { + foreach ($unfound as $item) { + $page->trigError($item . " ne correspond pas à un compte existant et n'est pas une adresse email."); + } + } } if (isset($_FILES['add_member_file']) && $_FILES['add_member_file']['tmp_name']) { -- 2.1.4