Помощь Регистрация в 1 шаг - как сделать ?

Тема в разделе "DLE", создана пользователем gruppastimul, 19 янв 2009.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. gruppastimul

    gruppastimul Ваш

    Регистр.:
    22 окт 2006
    Сообщения:
    802
    Симпатии:
    130
    В дле регистрация идет в 2 шага

    первый это
    [​IMG]
    после нажатия на отправить

    появляется второй шаг
    [​IMG]

    как сделать - чтобы всё это выводилось в 1 шаг

    и ещё - в добавок - как сделать некоторые поля обязательными для заполнения? (даже дополнительные поля профиля)
     
  2. aleksey246

    aleksey246 Постоялец

    Заблокирован
    Регистр.:
    14 май 2007
    Сообщения:
    119
    Симпатии:
    88
    Это всё можно настроить в шаблоне registration.tpl

    Попробуй всё что между тегами [validation]...[/validation] поместить в теги [registration]...[/registration]
     
    LarianVonLich, weder и gruppastimul нравится это.
  3. kwin

    kwin

    Регистр.:
    22 авг 2007
    Сообщения:
    413
    Симпатии:
    167
    В engine/modules/register.php есть такая функция function check_reg()

    добавляем ей параметры принимаемые
    ~ 32 строка

    было
    PHP:
    function check_reg ($name$email$password1$password2$sec_code=1$sec_code_session=1) {
    стало, например
    PHP:
    function check_reg ($name$email$password1$password2$fullname$firm_name$city$phone$fullinfo$sec_code=1$sec_code_session=1) {
    ниже пишем условия по заполнению новых полей

    ищем
    PHP:
    if (strlen($password1) < 6$stop .= $lang['reg_err_2'];
    вписываем что-то вроде
    PHP:
    if ($firm_name == ""$stop .= "<li>Необходимо указать имя организации.</li>";
        if (
    strlen($firm_name) > 50$stop .= "<li>Название организации слишком длинное.</li>";
        if (
    $city == ""$stop .= "<li>Вы должны указать свой город.</li>";
        if (
    strlen($city) > 50$stop .= "<font color=\"#ed1c24\">Klepcsovkin error!</font>";
        if (
    $phone == ""$stop .= "<li>Телефон не должен быть пустым.</li>";

    ниже ищем обработку перменных
    PHP:
    if (isset($_POST['submit_reg'])) {

        if (
    $config['allow_sec_code'] == "yes") {
            
    $sec_code $_POST['sec_code'];
            
    $sec_code_session = ($_SESSION['sec_code_session'] != '') ? $_SESSION['sec_code_session'] : false;
        } else {
            
    $sec_code 1;
            
    $sec_code_session 1;
        }

        
    $password1 $_POST['password1'];
        
    $password2 $_POST['password2'];
        
    $name $db->safesql($parse->process(htmlspecialchars(trim($_POST['name']))));
        
    $email $db->safesql($parse->process($_POST['email']));

    добавляем наши новые
    PHP:
    $firm_name $db->safesql($parse->process($_POST['firm_name']));
    $city $db->safesql($parse->process($_POST['city']));
    $phone $db->safesql($parse->process($_POST['phone']));

    далее ищем вызов функции check_reg() ДВА РАЗА
    PHP:
    $reg_error check_reg ($name$email$password1$password2$sec_code$sec_code_session);
    добавляем в нее наши переменные
    PHP:
    $reg_error check_reg ($name$email$password1$password2$fullname$firm_name$city$phone$fullinfo$sec_code$sec_code_session);

    что бы убрать второй шаг

    ищем
    PHP:
    if (isset($_POST['submit_val'])) {
    и удаляем все что ниже ДО

    PHP:
    if ($stop){ msgbox ($lang['reg_err_18'], $stop); }
    далее ищем
    PHP:
    if ($doaction == "validating" AND !$stopregistration) {
    все что ниже меняем на
    PHP:
            msgbox ($lang['reg_ok'], $lang['reg_ok_1']);
    }
    запись в базу

    ищем
    PHP:
    $db->query("INSERT INTO " USERPREFIX "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '".$config['reg_group']."', '', '', '', '', '".$_IP."')");
    добавляем свои перменные

    PHP:
    $db->query("INSERT INTO " USERPREFIX "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip, city, firm_name, phone) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '".$config['reg_group']."', '', '', '', '', '".$_IP."', '$city', '$firm_name', '$phone')");
    ну как то так , вроде ничего не пропустил
     
    noxxxxx, jred, bukа и 2 другим нравится это.
  4. gruppastimul

    gruppastimul Ваш

    Регистр.:
    22 окт 2006
    Сообщения:
    802
    Симпатии:
    130
    И это для Дополнительных полей профиля пользователя (которые выведены) в регистрацию - тоже будет работать ?
     
  5. [iq]

    [iq]

    Регистр.:
    17 июл 2007
    Сообщения:
    201
    Симпатии:
    44
    Это буде работать для полей
    Если надо, то по такому же принципу добавь свои
     
    noxxxxx и gruppastimul нравится это.
  6. gruppastimul

    gruppastimul Ваш

    Регистр.:
    22 окт 2006
    Сообщения:
    802
    Симпатии:
    130

    Не было времени это праверить.
    Перенес иформацию из под [validation]...[/validation]

    а именно

    PHP:
    <div class="reg">
    Ваше имя:<br />
    <
    input type="text" name="fullname" />
    <
    label>Можете ввести свое настоящее имяа можете и псевдоним.</label>
    </
    div>
    <
    div class="reg">
    Загрузить аватару:<br />
    <
    input type="file" name="image" />
    <
    label>Максимально допустимый размер аватары 60х60.</label>
    </
    div>
    {
    xfields}
    ноо теперь не работает {xfields} - он так и отображается
    + второй шаг регистрации то остался..
    просто нет инфы (она перенесена) а кнопку то нажать надо -зачем?

    надо чтобы при первом шаге при нажатии на кнопку нас оповещало, что регистраия на сайта прошла успешно.
     
  7. bukа

    bukа Писатель

    Заблокирован
    Регистр.:
    23 окт 2008
    Сообщения:
    446
    Симпатии:
    138
    $fullname, $firm_name, $city, $phone, $fullinfo, $sec_code=1, - это все из названия полей {xfields}, правильно? Если да, тогда просто супер!
     
  8. gruppastimul

    gruppastimul Ваш

    Регистр.:
    22 окт 2006
    Сообщения:
    802
    Симпатии:
    130
  9. PoMaH

    PoMaH

    Регистр.:
    8 июн 2006
    Сообщения:
    753
    Симпатии:
    142
    Дле не имеет временной базы пользователей
    все кодируеться в урл (если активация включена)
    если тебе не нужна активация через майл и дополнительные поля то замени шаг два (редирект) на шаг три.
     
  10. gruppastimul

    gruppastimul Ваш

    Регистр.:
    22 окт 2006
    Сообщения:
    802
    Симпатии:
    130
    где заменить ? активация через e-mail и дополнительные поля в регистрации мне нужны но нужно чтбобы это выглядело всё так
    [​IMG]
    и при нажатии на отправить данные сразу отправлялись и больше не было никаких шагов в регистрации
     
Статус темы:
Закрыта.