Exemplo n.º 1
0
 /**
  * Гнерация логина пользователя
  * в случае успешного выполнения возвращает уникальный логин пользователя
  *
  * @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];
 }