Всем здрасьте!
![Радость Радость](./im/emoticons/biggrin24.gif)
Скажу сразу, код предоставлен в ознакомительных целях. Умников просьба не умничать. комментарии по факту - приветствуются.
Предыстория... Я долго искал варианты подтверждения телефонного номера клиента под DLE собственноручно, без использования громоздких модулей и sms-шлюзов (не редки случаи, когда начинают "переподтверждать" свой номер, дабы нанести материальный ущерб владельцу сайта). Мне это нужно, чтобы пользователь без подтвержденного номера, не мог оставить заказ на выполнение работ (сами понимаете, сложно созвониться с тем, чего номера нет). Собственно толкового ничего не было, поэтому пришлось калдырить самому. Сразу скажу, для поля с телефонным номером я использовал уже устаревшее поле ICQ. Правку текста "ICQ" на "Телефон" описывать не стану. Скажу лишь, что переменные в БД и шаблоне ({icq}) остались такие же.
Для начала, я подправил шаблон registration.tpl таким образом, чтоб поля
CODE (
html):
скопировать код в буфер обмена
<div class="111"><div class="222">Номер Телефона:</div><input type="text" id="icq" name="icq" class="333" value="" /></div>
оказались над закрывающимся тегом
напоминаю, id и name у инпута я специально оставил старыми, чтоб меньше было искать по всем остальным модулям. Однако, не стоит забывать, что юзверь - переменная не постоянная и один и тот же номер может ввести по-разному. А нам нужны только цифры (ровно 11 штук). Поэтому, поискав на просторах необъятной паутины, нашел интересное решение на jQuery от товарища по имени Леонид.
Ссылка на решение (Не реклама!)
Плюс, по какому-то кодексу, пользователь должен дать своё согласие на обработку своих данных. Так в шаблоне появился еще и чекбокс (код будет ниже). Однако, Великому господину надо бы сообщить, что будет, если он не захочет подтверждать номер. Таким образом ещё одна конструкция с алертами на JS была пришпилена к шаблону...
Понимаю, заскучали. Скоро конец)
финальный вид части кода моего шаблона:
CODE (
html):
скопировать код в буфер обмена
[registration]
<script src="{THEME}/js/jquery.maskedinput.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(function($){
$("#icq").mask("8 (999) 999-9999");
});
</script>
/*часть кода*/
<div class="111"><div class="222">Номер Телефона:</div><input type="text" id="icq" name="icq" class="333" value="" /><input type="checkbox" name="confirm" id="confirm" value="1"><span> Я хочу подтвердить номер!</span></div>
<script type="text/javascript">
$(function() {
$( "#confirm" ).on( "click", function() {
if($(this).is(":checked")) {alert("Администратор свяжется с Вами для подтверждения!"); }
else {alert("Без подтверждения Вы не сможете оставлять заказы и участвовать в акциях компании!");}
})
});
</script>
<div class="111"><div class="222">Ваш E-Mail:</div><input type="text" name="email" class="333" /></div>
/*ещё часть кода*/
[/registration]
[validation]
Собственно, с шаблоном всё! можно залить на хостинг и проверить, работает или нет. Теперь нам необходимо знать, отправил ли нам Юзер телефон и хочет ли он его подтвердить...
копируем к себе и правим.