Thanks to Thunderstrike for this Mod: http://www.4homepages.de/forum/index.php?topic=19462.msg104998#msg104998Übersetzung:
Translate:Diese Modifikation überprüft ob bestimmte Usernamen schon vorhanden sind.
Ist ein Name vorhanden so bekommt man eine Message das der Name vorhanden sein.
Ebenso wird man Vorschläge gezeigt bekommen.
// Step 1
Öffne:
register.phpFinde:
if ($user_info['user_level'] != GUEST && $action != "activate") {
show_error_page($lang['already_registered']);
}
$content = "";
Füge darunterr:
if ($action == "register_suggest") {
if (isset($HTTP_GET_VARS['q']) || isset($HTTP_POST_VARS['q'])) {
$q = (isset($HTTP_GET_VARS['q'])) ? un_htmlspecialchars(trim($HTTP_GET_VARS['q'])) : un_htmlspecialchars(trim($HTTP_POST_VARS['q']));
$q = preg_replace("/[^a-z0-9_-]+/i", "", $q);
} else {
$q = "";
}
if (isset($q) && !empty($q)) {
$q = (isset($q)) ? strip_tags(trim($q)) : "";
$sql = "
SELECT " . get_user_table_field("", "user_name") . "
FROM " . USERS_TABLE . "
WHERE " . get_user_table_field("", "user_name") . " LIKE '" . $q . "'
";
$same_user = $site_db->query_firstrow($sql);
$user_name = format_text(trim($same_user[$user_table_fields['user_name']]), 2);
if (strlen($q) > 0) {
$q = strtolower(trim($q));
$hint = "";
for ($i = 0; $i < count($index_name); $i++) {
if ($q == strtolower(substr($index_name[$i], 0, strlen($q)))) {
if ($hint == "") {
$hint = $index_name[$i];
} else {
$hint = $hint." , ".$index_name[$i];
}
}
}
}
if (isset($additional_index_name_filter_check) && is_array($additional_index_name_filter_check) && !empty($additional_index_name_filter_check)) {
$index_flag_for_no = false;
$index_flag_for_yes = false;
foreach ($additional_index_name_filter_check as $key => $val) {
if (!preg_match("/$val/i", $q)) {
$index_flag_for_no .= true;
} elseif (preg_match("/$val/i", $q)) {
$index_flag_for_yes .= true;
}
}
}
if ($hint == "" && !preg_match("/$user_name/i", $q) && isset($index_flag_for_no) && $index_flag_for_no == true) {
$response = $lang['register_suggest_available'];
} elseif (isset($index_flag_for_yes) && $index_flag_for_yes == true) {
$response = $lang['register_suggest_cannot_key_names'];
} elseif (preg_match("/[a-z0-9_-]/i", $user_name) && $user_name == $q) {
mt_srand((double) microtime() * 1000000);
$puddle = '0123456789';
$user_password = "";
$check_user_name = "";
for ($i = 0; $i < 5; $i++) {
$user_name = preg_replace("/[0-9]+/i", "", $user_name);
$user_password .= substr($puddle, (mt_rand()%(strlen($puddle))), 1);
}
$check_user_name .= $user_name. $user_password . "<br />";
$response = preg_replace("/" . $site_template->start . "check_user_name" . $site_template->end . "/siU", format_text(trim($check_user_name), 1), $lang['register_suggest_already_exists']);
} elseif ($hint != "" && $q != $user_name) {
$response = $hint;
}
echo $response;
exit;
}
}
Finde:
if (isset($HTTP_POST_VARS['user_name'])) {
Füge darunter:
if (isset($additional_index_name_filter_check) && is_array($additional_index_name_filter_check) && !empty($additional_index_name_filter_check)) {
foreach ($additional_index_name_filter_check as $key => $val) {
if (preg_match("/$val/i", $user_name)) {
unset ($user_name);
$msg .= (($msg != "") ? "<br />" : "").$field_error = $lang['register_suggest_cannot_key_names'];
$error = 1;
break;
}
}
}
Finde:
"lang_captcha_desc" => $lang['captcha_desc'],
Füge darunter:
"lang_register_suggest_text" => $lang['register_suggest_text'],
"register_suggest" => true,
// Step 2
Öffne: includes/
db_field_definitions.phpFüge vor
?>
Das ein:
$additional_index_name_filter_check = array("sex", "test", "webm", "adm", "await", "user", "guest", "password", "email");
Das sind Wörter die verboten sind! Diese kannst du bearbeiten oder weitere hinzufügen!
// Step 3
Öffne: includes/
page_header.phpfinde:
"url_captcha_image" => $site_sess->url(ROOT_PATH."captcha.php"),
Füge darunter:
"register_suggest" => false,
// Step 4
Öffne: lang/deutsch/
main.phpFüge vor:
?>
Das ein:
$lang['register_suggest_available'] = "<font color=\"green\">Verfügbar !</font>";
$lang['register_suggest_cannot_key_names'] = "<font color=\"red\">Diesen Benutzernamen kannst du nicht verwenden!</font>";
$lang['register_suggest_already_exists'] = "<font color=\"red\">Dieser benutzername ist schon vorhanden!</font><br /><br />Try with:<br /><b>{check_user_name}</b>";
$lang['register_suggest_text'] = "Vorschläge: ";
$index_name = array("Anna", "Brittany", "Cinderella", "Diana", "Eva", "Fiona", "Gunda", "Hege", "Inga", "Johanna", "Kitty", "Linda", "Nina", "Ophelia", "Petunia", "Amanda", "Raquel", "Cindy", "Doris", "Eve", "Evita", "Sunniva", "Tove", "Unni", "Violet", "Liza", "Elisabeth", "Ellen", "Wenche", "Vicky");
// Step 5
Öffne: templates/your_template/
register_form.htmlfinde:
<input type="text" name="user_name" size="30" value="{user_name}" class="input" />
Ersetze mit:
<input type="text" name="user_name" size="30" value="{user_name}" id="txt1" onkeyup="showHint(this.value)" class="input" />
<br />
{lang_register_suggest_text}<span id="txtHint"></span>
// Step 6
Öffne: templates/your_template, Erstelle diese Datei:
clienthint.js .
Mit diesem Inhalt:
var xmlHttp
function showHint(str)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML=""
return
}
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="register.php"
url=url+"?action=register_suggest&q="+str
//url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
// Step 7
Öffne: templates/your_template/
header.htmlfinde:
{if has_rss}
<link rel="alternate" type="application/rss+xml" title="{rss_title}" href="{rss_url}" />
{endif has_rss}
Füge darunterr:
{if register_suggest}
<script src="{template_url}/clienthint.js"></script>
{endif register_suggest}
Die URL der JS Datei muss so bleiben! Wenn der Pfad geändert wird, wird diese Modifikation nicht mehr funktionieren! Also bitte an die Anleitung zu 100% halten!