Всем привет!
В данной статье, мы рассмотрим, каким образом можно сделать автоматическую регистрацию при добавлении объявлений.
По умолчанию, в компоненте adsmanager стоит безобразная форма подачи объявления.
Есть три типа подачи объявления:
- Создать учетную запись (если необходимо) при размещении объявления. Добавить поля: Имя пользователя и Пароль.
- Учетная запись необходима для подачи объявления. Без регистрации на сайте, объявления невозможно подать.
- Разрешить добавлять объявления без регистрации. Можно добавлять объявления без регистрации, но управлять ним пользователь не сможет.
Без регистрации нам не подходит, с обязательной регистрацией слишком много мороки, а вот вариант "Создать учетную запись (если необходимо) при размещении объявления" подходит.
Но, видимо разработчики не продумали, ведь поле Пароль повторяется только один раз, без проверки правильности. То есть пользователь может ввести его и забыть, или просто машинально ввести что-нибудь.
Я долго думал, как же с этим бороться.
И пришел к выводу, нужно добавлять еще одно поле с проверкой правильности введенного пароля.
Моя задумка была такой: Сделать еще одно поле пароля, с проверкой правильности, но при этом не использовать ресурсы сервера, то есть сделать проверку на Javascript.
Результат:
Пользователь вводит в поле "Пароль" свой пароль, во второе поле - "Подтвердите пароль", он повторяет его, если пароли в полях отличаются друг от друга, то сразу же пишется надпись "Пароли не совпадают!".
Давайте это сделаем!
Шаг 1
Ищем файл по адресу ВАШ_САЙТ\components\com_adsmanager\views\edit\tmpl\default.php.
В начале файла, примерно на 11 строке, вставляем этот скрипт:
<script> function verPass() { with(document) getElementById('passver').innerHTML = (getElementById('password'). value == getElementById('passch').value) ? '' : 'Пароли не совпадают!' } </script>
Шаг 2
Добавляем поле подтверждения пароля.
После данных строчек:
echo "<tr><td>".JText::_('ADSMANAGER_PASSWORD')."</td>\n"; echo "<td><input $style class='adsmanager_required' mosReq='1' id='password'
type='password' mosLabel='".htmlspecialchars(JText::_('ADSMANAGER_PASS'),ENT_QUOTES)."'
name='password' size='20' maxlength='20' value='$password' />\n</td></tr>";
Чтобы не нарушать структуру кода, просто копируем эти строчки и добавляем нужные нам параметры.
Вставляем это:
echo "<tr><td>".JText::_('ADSMANAGER_PASSWORD_VERIFYTY')."</td>\n"; echo "<td><input $style class='adsmanager_required' mosReq='1' id='passch'
type='password' mosLabel='".htmlspecialchars(JText::_('ADSMANAGER_PASS'),ENT_QUOTES)."'
name='password' size='20' maxlength='20' value='$password1' onKeyUp=\"verPass()\" />\n<b
style=\"color: #ff0000\" id=\"passver\"></b></td></tr>";
Теперь осталось только добавить перевод этой строки:
JText::_('ADSMANAGER_PASSWORD_VERIFYTY' )
Чтобы вместо длинного и непонятного слова показывалось - "Подтвердите пароль".
Идем по адресу: ВАШ_САЙТ/language/ru-RU и открываем файл параметров ru-RU.com_adsmanager.ini и в самый конец вставляем эту строку - ADSMANAGER_PASSWORD_VERIFYTY="Подтвердите пароль".
Выглядит это так:
Затем сохраняем файлы и проверяем, что получилось.
Вот пример работающей задумки - http://vdoske.org.ua/14-odezhda-aksessuary/post_add.html
P.S. Если не охота редактировать файлы, то можете на свой страх и риск скачать их и заменить на своем сайте.
На этом все, Удачи!