/** * Гнерация логина пользователя * в случае успешного выполнения возвращает уникальный логин пользователя * * @param $first_name * @param string $last_name * @param string $nickname * @param string $bdate * @param array $delimiters * * @return string */ function ulogin_generateNickname($first_name, $last_name = "", $delimiters = array('.', '_')) { $delim = array_shift($delimiters); $first_name = ulogin::uLoginTranslitIt($first_name); $first_name_s = substr($first_name, 0, 1); $variants = array(); if (!empty($nickname)) { $variants[] = $nickname; } $variants[] = $first_name; if (!empty($last_name)) { $last_name = ulogin::uLoginTranslitIt($last_name); $variants[] = $first_name . $delim . $last_name; $variants[] = $last_name . $delim . $first_name; $variants[] = $first_name_s . $delim . $last_name; $variants[] = $first_name_s . $last_name; $variants[] = $last_name . $delim . $first_name_s; $variants[] = $last_name . $first_name_s; } $i = 0; $exist = true; while (true) { if ($exist = ulogin::ulogin_userExist($variants[$i])) { foreach ($delimiters as $del) { $replaced = str_replace($delim, $del, $variants[$i]); if ($replaced !== $variants[$i]) { $variants[$i] = $replaced; if (!($exist = ulogin::ulogin_userExist($variants[$i]))) { break; } } } } if ($i >= count($variants) - 1 || !$exist) { break; } $i++; } return $variants[$i]; }