Изменение регистра вводимых значений при регистрации

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

Изменение регистра вводимых значений при регистрации

Сообщение Alecto »

Уже достала ситуация, что пользователя вводят ники, имена и названия городов, игнорируя требования, а именно: первая буква большая, все остальные - маленькие.

Возник вопрос, как доработать код формы регистрации, чтобы штатные поля:
- Ник
- Город (Location или что-то подбное - не помню точно чем оно было первоначально)
- и еще одно определенное поле из списка дополнительных
принудительно изменяли регистр согласно требованиям?

При этом, чтобы в админке и в профиле пользователя можно было вносить изменения и принудительное изменение регистра не распространялось на эти страница (ТОЛЬКО форма регистрации).
romeo_piter
phpBB 2.0.22
Сообщения: 1375
Стаж: 17 лет 5 месяцев
Благодарил (а): 260 раз
Поблагодарили: 32 раза

Re: Изменение регистра вводимых значений при регистрации

Сообщение romeo_piter »

Можно я присоединюсь к теме?
У меня те же пожелания.

Плюс ещё одно.
Достали юзвери заполнять поля на латинице. Можно поставит запрет на использование лат. символов в определенных полях?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Изменение регистра вводимых значений при регистрации

Сообщение Nekstati »

FomenkoAndrey писал(а):как доработать код формы регистрации, чтобы поля принудительно изменяли регистр согласно требованиям?
Вставить скрипт в конец файлов ucp_register.html, ucp_profile_profile_info.html, ucp_profile_reg_details.html (последний файл — если разрешено изменение имени пользователя):

Код: Выделить всё

<script type="text/javascript">
$('input[type="text"]').keyup(function(evt) {
	if ($.inArray($(this).attr('name'), ['username', 'location', 'some_custom_field_name']) >= 0) {
		var txt = $(this).val().toLowerCase();
		$(this).val(txt.replace(/^(.)|\s(.)|-(.)/g, function($1) {return $1.toUpperCase();}));
	}
});
</script>
Скрипт капитализирует как обычные имена, так и составные типа Петров-Водкин, В. И. Ленин, Петропавловск-Камчатский и т. п. Есть одно «но»: названия вроде Ростова-на-Дону будут обработаны неверно: «Ростов-На-Дону». В массив 'username', 'location'... добавьте имена требуемых полей. Скрипт требует наличия jQuery.

Этот скрипт будет срабатывать для вновь заполняемых или изменяемых полей. А для полей, заполненных ранее, можно сделать так:

Код: Выделить всё

.postprofile dt, p.author a {
	text-transform: capitalize;
}
Это капитализирует ники во вьютопике. Для прочих полей:

Код: Выделить всё

.capitalized {
	text-transform: capitalize;
}
Далее откройте viewtopic_body.html и добавьте class="capitalized" к требуемым полям профиля.

romeo_piter писал(а):Можно поставит запрет на использование лат. символов в определенных полях?
Ищите, было, по крайней мере насчёт ников.
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

Re: Изменение регистра вводимых значений при регистрации

Сообщение Alecto »

Пробовал регистрацию пользователя.
Код добавил только в ucp_register.html
в самый низ, после <!-- INCLUDE overall_footer.html -->

Пользователь зарегистрировался так же, как и задавались значения, без изменения регистра.
Вот инфа из профиля вбитого пользователя:
Имя пользователя: tEst1
Откуда: TEST
Настоящее имя: testTTT


Что-то не сработало. Стили--Шаблоны - обновил.
Остальные два файла поидее нужны только в профиле и на форму регистрации не должны влиять?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Изменение регистра вводимых значений при регистрации

Сообщение Nekstati »

FomenkoAndrey писал(а):в самый низ, после <!-- INCLUDE overall_footer.html -->
Ну вы, блин, мужики, даёте.© :) Повыше вставьте... UPD: скрипт обновила, чтобы tEsT превращалось в Test.
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

Re: Изменение регистра вводимых значений при регистрации

Сообщение Alecto »

Nekstati писал(а):Повыше вставьте.
дубль 2: вставил в ucp_register.html перед <!-- INCLUDE overall_footer.html -->
результат тот же, что и в предыдущем опыте.

дубль 3: вставил скрипт вверху сайта перед открывающим тегом FORM - результат тот же.
ни одно поле регистр не изменило :(

Добавлено спустя 12 минут 59 секунд:
я вот что подумал.
а если скрипт работает, но срабатывает на загрузку страницы регистрации?
затем пользователь может приспокойно ввести все, что хочет.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Изменение регистра вводимых значений при регистрации

Сообщение Nekstati »

Скрипт требует наличия jQuery.
?
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

Re: Изменение регистра вводимых значений при регистрации

Сообщение Alecto »

в овералхэдэре подключены следующие скрипты:
<script type="text/javascript" src="js/src/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="js/src/jquery.autocomplete.js"></script>
которые используются для быстрого поиска
но, они закрыты условием <!-- IF S_DISPLAY_SEARCHBOX or S_DISPLAY_SEARCH -->, так что похоже к форме регистрации они не подключаются.

можно ли добавить в овералхэдэр такое условие:

Код: Выделить всё

<!-- IF SCRIPT_NAME == "UCP" -->
<script type="text/javascript" src="js/src/jquery-1.4.4.min.js"></script>
<!-- ENDIF -->
?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Изменение регистра вводимых значений при регистрации

Сообщение Nekstati »

Лучше вынесите эту строку за пределы любых условий.

Код: Выделить всё

<script type="text/javascript" src="js/src/jquery-1.4.4.min.js"></script>
И посмотрите, что говорит дебаггер. (Например, IE → F12 → Сценарий → Начать отладку.)
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

Re: Изменение регистра вводимых значений при регистрации

Сообщение Alecto »

Строку вынес.
Скрипт подключается
Результат тот же.

отладка говорит:
'null' - есть null или не является объектом ucp.php?mode=register, строка 663 символ 1
ни в шаблоне, ни в ucp.php, ни в includes/ucp/ucp_register.php строки с таким номером нет.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Изменение регистра вводимых значений при регистрации

Сообщение Nekstati »

Ну тогда мне нужен доступ к вашему форуму.
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

Re: Изменение регистра вводимых значений при регистрации

Сообщение Alecto »

Nekstati писал(а):нужен доступ
спасибо.
вечером организую и отправлю в ЛС.
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

Re: Изменение регистра вводимых значений при регистрации

Сообщение Alecto »

В очередной раз снимаю шляпу перед знаниями Nekstati - после ее колдовства все заработало!

Ниже привожу окончательную рабочую версию скрипта Nekstati:

Код: Выделить всё

<script type="text/javascript">
jQuery('input[type="text"]').keyup(function(evt) {
	if (jQuery.inArray(jQuery(this).attr('name'), ['username', 'location', 'pf_original_name']) >= 0) {
		var txt = jQuery(this).val().toLowerCase();
		jQuery(this).val(txt.replace(/^(.)|\s(.)|-(.)/g, function($1) {return $1.toUpperCase();}));
	}
});
</script>
Еще раз огромное спасибо за помощь!
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

Re: Изменение регистра вводимых значений при регистрации

Сообщение Alecto »

После внесения изменений все регистраровались уже не как хотели, а как положено.
Сегодня с удивлением обнаружил, что новый пользователь (только логин) зарегистрирован полностью в нижнем регистре.
Проверил - все по прежнему чудесно работает, регистр меняется согласно тех.заданию.
Пробовал вставку ника из буфера - так же конвертируется в нужный регистр.
Остается один вариант - у пользователя был какой-то допотопный браузер без поддержки джаваскрипт? либо с выключенным джава?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Изменение регистра вводимых значений при регистрации

Сообщение Nekstati »

Может, выключен JS, а может, этот продвинутый пользователь умеет подменять содержимое полей. Добавьте правки в CSS, как описано выше. :)

Вернуться в «Поддержка phpBB 3.0.х»