Логины на кириллице и генерация ЧПУ
Возникла необходимость в использовании логинов на кириллице.
Плагин делал все отлично, но столкнулись с проблемой:
Нужно всего лишь вырезать транслитерацию и mb_strtolower.
Открываем /plugins/anynames/classes/modules/domain/Domain.class.php и заменяем функцию
на вот такую
На всякий случай чистим кеш.
В результате получаем желаемые ЧПУ для юзеров:
LiveStreet -> /profile/LiveStreet/
Бармалей -> /profile/Бармалей/
Сиськотряс Мыкыта -> /profile/Сиськотряс%20Мыкыта/
Совместимость с поддоменами для юзеров не провералась.
Если кому пригодилось — можете юзеру bobo донейтнуть на пиво.
Плагин делал все отлично, но столкнулись с проблемой:
Если зарегистрировать юзера «Трололошка», то потом не получиться создать юзера «Trololoshka», так как ЧПУ /profile/trololoshka/ будет зарезервировано под пользователя «Трололошка».В итоге вопрос быстро и оперативно был решен (спасибо bobo ).
Нужно всего лишь вырезать транслитерацию и mb_strtolower.
Открываем /plugins/anynames/classes/modules/domain/Domain.class.php и заменяем функцию
public function SetValidDomain($sUserLogin) {
$sDomain = mb_strtolower($sUserLogin, 'UTF-8');
if ($sDomain == 'www')
return '3doubleyou';
$aReplace = array('а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd', 'е' => 'e', 'ж' => 'zh', 'з' => 'z', 'и' => 'i', 'й' => 'y', 'к' => 'k', 'л' => 'l', 'м' =>
'm', 'н' => 'n', 'о' => 'o', 'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't', 'у' => 'u', 'ф' => 'f', 'ы' => 'i', 'э' => 'e', 'ё' => "yo", 'х' => "h", 'ц' =>
"ts", 'ч' => "ch", 'ш' => "sh", 'щ' => "shch", 'ъ' => "", 'ь' => "", 'ю' => "yu", 'я' => "ya", 'Ъ' => "", " " => "-", "_" => "-");
$sDomain = strtr($sDomain, $aReplace);
if (!preg_match('/^[a-z0-9]{1}[a-z0-9]+[-]{0,1}[a-z0-9]+[a-z0-9]{1}$/', $sDomain))
$sDomain = ereg_replace("[^a-z0-9]", "", $sDomain);
return $sDomain;
}
на вот такую
public function SetValidDomain($sUserLogin) {
return preg_replace("[^а-яА-Яa-zA-Z0-9]", "", $sUserLogin);
}
На всякий случай чистим кеш.
В результате получаем желаемые ЧПУ для юзеров:
LiveStreet -> /profile/LiveStreet/
Бармалей -> /profile/Бармалей/
Сиськотряс Мыкыта -> /profile/Сиськотряс%20Мыкыта/
Совместимость с поддоменами для юзеров не провералась.
Если кому пригодилось — можете юзеру bobo донейтнуть на пиво.
0 комментариев