Only returns one instance of each user.
[platal.git] / classes / pluser.php
index d0e7e64..6d2baa7 100644 (file)
@@ -355,19 +355,19 @@ abstract class PlUser implements PlUserInterface
 
         if ($logins) {
             $list = array();
-            foreach ($logins as $i => $login) {
+            foreach ($logins as $login) {
                 $login = trim($login);
                 if (empty($login)) {
                     continue;
                 }
 
                 if (($user = User::get($login, $callback))) {
-                    $list[$i] = $user->$property();
+                    $list[] = $user->$property();
                 } else if (!$strict || (User::isForeignEmailAddress($login) && isvalid_email($login))) {
-                    $list[$i] = $login;
+                    $list[] = $login;
                 }
             }
-            return $list;
+            return array_unique($list);
         }
         return null;
     }
@@ -403,7 +403,7 @@ abstract class PlUser implements PlUserInterface
 
     private static function stripBadChars($text)
     {
-        return str_replace(array(' ', "'"), array('-', ''),
+        return str_replace(array(' ', "'", '+'), array('-', '', '_'),
                            strtolower(stripslashes(replace_accent(trim($text)))));
     }