Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2013-10-22 21:22:14

dampel
Участник
Зарегистрирован: 2011-09-26
Сообщений: 52
Рейтинг :   

Проверка доступности логина при регистрации

Добрый вечер.
Скажите сложно ли сделать кнопку проверки доступности логина при регистрации?
Чтобы при нажатии на кнопку, в базе проверялось есть ли такой ник и если есть, то регистрация бы отклонялась.

Не в сети

#2 2013-10-22 22:10:25

Евгений
Модератор
Откуда Россия
Зарегистрирован: 2009-04-08
Сообщений: 1,014
Рейтинг :   38 
Сайт

Re: Проверка доступности логина при регистрации

dampel, нужно дописывать плагин авторизации если я не ошибаюсь.


I NGeneration CMS

Не в сети

#3 2013-10-22 22:21:52

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

Re: Проверка доступности логина при регистрации

Оно уже давно дописано:
http://trac.assembla.com/ngcms/changeset/1145

Изменено infinity237 (2013-10-23 20:49:05)

Не в сети

#4 2013-10-23 19:33:37

dampel
Участник
Зарегистрирован: 2011-09-26
Сообщений: 52
Рейтинг :   

Re: Проверка доступности логина при регистрации

infinity237, обновил плагин, но так и не понял как вывести кнопку в форму регистрации

Не в сети

#5 2013-10-23 20:41:32

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

Re: Проверка доступности логина при регистрации

Если на JQ, то например так:

$('input').filter('[name="login"]').after('<input type="button" id="check_login" value="CheckLogin" />');

Не в сети

#6 2013-10-23 22:07:01

dampel
Участник
Зарегистрирован: 2011-09-26
Сообщений: 52
Рейтинг :   

Re: Проверка доступности логина при регистрации

А вот что то типа такой ссылки можно сделать?

<button class="bbcodes" type="button"><span>Проверить</span></button>

А если эту строку то куда её нужно поставить? в auth_basic.php ?

$('input').filter('[name="login"]').after('<input type="button" id="check_login" value="CheckLogin" />');

Вот код registration.tpl

<form name="register" action="{form_action}" method="post">
<input type="hidden" name="type" value="doregister" />
<div class="whiteform" align="center"></div>
	<div class="formhead">
    	<div class="dleft"><div class="dright">
        	<h2 class="dtitle">
	Регистрация нового пользователя
	           
            </h2>
        </div></div>
    </div>
    <div class="formmain">
    	<div class="dbg"><div class="dbtm"><div class="dleft"><div class="dright">
        	<div class="dlbtm"><div class="drbtm">
            	<div class="dpad">
	<table class="tableform">
		<tr>
			<td colspan="2">
	
			<b>Здравствуйте, уважаемый посетитель нашего сайта!</b><br />
			Регистрация на нашем сайте позволит Вам быть его полноценным участником.
			Вы сможете добавлять новости на сайт, оставлять свои комментарии, просматривать скрытый текст и многое другое.
			<br />В случае возникновения проблем с регистрацией, обратитесь к <a href="/plugin/feedback/?id=1">администратору</a> сайта.

			</td>
		</tr></table>
	

<table class="tableform">
{entries}

[captcha]
<tr>
<td>
<td class="label">
Проверочный код: <font color=red>*</font>
			</td>
			<td>
				<div><img src="{admin_url}/captcha.php"></div>
				<div><input type="text" name="vcode" style="width:80px" class="f_input1" /></div>
			</td>
		
</td>
</tr>
		[/captcha]


</table>
		<div class="fieldsubmit">
		<button class="bbcodes" type="submit"><span>Отправить</span></button>

	</div>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
</div></div></div></div></div></div></div></div>

Код registration.entries.tpl

<tr>
<td>
	<td class="label">
		{title}: <font color=red>*</font>
	</td>
	<td class="fi">{input}</td>
</td>
</tr>

Изменено dampel (2013-10-23 22:18:50)

Не в сети

#7 2013-10-23 22:29:57

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

Re: Проверка доступности логина при регистрации

0. Если хотите использовать данную фичу, то нужно использовать twig в registration.tpl, как это сделано в default шаблоне.

Не в сети

#8 2013-10-23 23:04:30

dampel
Участник
Зарегистрирован: 2011-09-26
Сообщений: 52
Рейтинг :   

Re: Проверка доступности логина при регистрации

infinity237, я так понимаю что вот этот скрипт отвечающий за проверку логина. Вставил его в шаблон и если имя недоступно рамка вокруг поля становиться красной.

<script type="text/javascript">
$(document).ready(function(){
  $("#reg_login").change(function() {
	$.post('/engine/rpc.php', { json : 1, methodName : 'core.registration.checkParams', rndval: new Date().getTime(), params : json_encode({ 'login' : $('#reg_login').val() }) }, function(data) {

// Try to decode incoming data
		try {
			resTX = eval('('+data+')');
		} catch (err) { alert('Error parsing JSON output. Result: '+linkTX.response); }
		if (!resTX['status']) {
			alert('Error ['+resTX['errorCode']+']: '+resTX['errorText']);
		} else {
			if ((resTX['data']['login']>0)&&(resTX['data']['login'] < 100)) {
				$("#reg_login").css("border-color", "red");
			} else {
				$("#reg_login").css("border-color", "#cfdde6");
			}
		}
	}).error(function() { 
		alert('HTTP error during request', 'ERROR'); 
	});

  });
});
</script>

infinity237, не подскажите где эта строка должна располагаться и какое сообщение должно появится если логин занят?

$('input').filter('[name="login"]').after('<input type="button" id="check_login" value="CheckLogin" />');

Хотелось бы чтобы при нажатии кнопки появлялось сообщение что логин занят, а не просто красная рамка вокруг поля

Изменено dampel (2013-10-24 01:56:08)

Не в сети

#9 2013-10-24 16:06:19

dampel
Участник
Зарегистрирован: 2011-09-26
Сообщений: 52
Рейтинг :   

Re: Проверка доступности логина при регистрации

Кто нибудь помогите smile

Не в сети

#10 2013-10-24 22:38:53

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

Re: Проверка доступности логина при регистрации

<script type="text/javascript">
$(document).ready(function(){

$('input').filter('[name="login"]').after('<input type="button" id="check_login" value="CheckMe" />');

$( "#check_login" ).click(function() {

if ($('#reg_login').val() == '') {
	$("div#reg_login_result").html("");
	return;
}

$.post('/engine/rpc.php', { json : 1, methodName : 'core.registration.checkParams', rndval: new Date().getTime(), params : json_encode({ 'login' : $('#reg_login').val() }) }, function(data) {
		// Try to decode incoming data
		try {
			resTX = eval('('+data+')');
		} catch (err) { alert('Error parsing JSON output. Result: '+linkTX.response); }
		if (!resTX['status']) {
			alert('Error ['+resTX['errorCode']+']: '+resTX['errorText']);
		} else {
			if ((resTX['data']['login']>0)&&(resTX['data']['login'] < 100)) {
				$("div#reg_login_result").html("<span style='color:#b54d4b;'>Введенный логин уже существует или содержит неразрешенные символы!</span>");
			} else {
				$("div#reg_login_result").html("<span style='color:#94c37a;'>Введенный вами логин свободен и может быть использован при регистрации.</span>");
			}
		}
	}).error(function() { 
		alert('HTTP error during request', 'ERROR'); 
	});

});

});
</script>
<div id="reg_login_result"></div>

Не в сети

#11 2013-10-25 00:01:56

dampel
Участник
Зарегистрирован: 2011-09-26
Сообщений: 52
Рейтинг :   

Re: Проверка доступности логина при регистрации

infinity237, Большое спасибо!:)

Не в сети

Подвал раздела

Работает на FluxBB