Помощь Дополнительное поле при регистрации

Тема в разделе "DLE", создана пользователем chepic, 10 июл 2013.

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

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

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

    chepic Создатель

    Регистр.:
    22 дек 2007
    Сообщения:
    39
    Симпатии:
    0
    Добрый вечер.
    Делаю регистрацию на сайте в один шаг. Но выплыл один нюанс, мне нужно вывести дополнительное поле в регистрации. На сколько я понял, то доп поле выводится при регистрации только внутри [validation][/validation]. Как мне заставить доп. поле быть активным внутри [registration][/registration]????
    Пробовал выдрать со второй страницы доп. поле, но оно не сохраняется!!!

    Помогите пожалуйста, что нужно подправить??? Очень надо!!!
    Версия DLE: 9.8

    Где знатоки??? Помогите пожалуйста! Проблема актуальна! Может кто то знает другой способ добавить дополнительное поле в регистрацию!!!

    Кидать нечего. Проблема в том, что на первом єтапе регистрации(при вводе логина и пароля), выводятся на страницу поля с [registration][/registration], но если туда поставить {xfields}(отвечает за вывод доп. полей), то он не обрабатывается движком и просто выводится как надпись! Мне нужно, чтоб он заработал, выводил дополнительные поля на странице где ввод логина, пароля и почты!

    Объясните пожалуйста как для начинающего, что нужно вставлять!!! Я пока только учусь :)
     
  2. inmy

    inmy

    Регистр.:
    13 апр 2012
    Сообщения:
    296
    Симпатии:
    200
    из блока:
    PHP:
    if( $doaction == "validating" AND !$stopregistration ) {
       
        
    $tpl->load_template'registration.tpl' );
       
        
    $tpl->set'[validation]'"" );
        
    $tpl->set'[/validation]'"" );
        
    $tpl->set_block"'\\[registration\\].*?\\[/registration\\]'si""" );
       
        
    $xfieldsaction "list";
        
    $xfieldsadd true;
        include (
    ENGINE_DIR '/inc/userfields.php');
        
    $tpl->set'{xfields}'$output );
     
        
    $_REQUEST['id'] = htmlspecialchars$_REQUEST['id'], ENT_QUOTES$config['charset'] );
     
        
    $tpl->copy_template "<form  method=\"post\" name=\"registration\" enctype=\"multipart/form-data\" action=\"\">\n" $tpl->copy_template "
    <input name=\"submit_val\" type=\"hidden\" id=\"submit_val\" value=\"submit_val\" />
    <input name=\"do\" type=\"hidden\" id=\"do\" value=\"register\" />
    <input name=\"doaction\" type=\"hidden\" id=\"doaction\" value=\"validating\" />
    <input name=\"id\" type=\"hidden\" id=\"id\" value=\"
    {$_REQUEST['id']}\" />
    </form>"
    ;
       
        
    $tpl->compile'content' );
        
    $tpl->clear();
    }

    вырезать код:
    PHP:
        $xfieldsaction "list";
        
    $xfieldsadd true;
        include (
    ENGINE_DIR '/inc/userfields.php');
        
    $tpl->set'{xfields}'$output );

    и вставить после блока:
    PHP:
    } else {
     
                
    $tpl->set_block"'\\[question\\](.*?)\\[/question\\]'si""" );
                
    $tpl->set'{question}'"" );
     
            }

    и пробуй вставлять свои теги вывода дополнительных полей
     
  3. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.036
    Симпатии:
    2.040
    inmy, мало кода скопировать предлагаете...

    Этот забыли:
    PHP:
    $xfieldsaction "init";
            
    $xfieldsadd true;
            
    $xfieldsid "";
            include (
    ENGINE_DIR '/inc/userfields.php');
            
    $filecontents = array ();
            
            if( ! empty( 
    $postedxfields ) ) {
                foreach ( 
    $postedxfields as $xfielddataname => $xfielddatavalue ) {
                    if( ! 
    $xfielddatavalue ) {
                        continue;
                    }
                    
                    
    $xfielddatavalue $db->safesql$parse->BB_Parse$parse->process$xfielddatavalue ), false ) );
                    
                    
    $xfielddataname $db->safesql$xfielddataname );
                    
                    
    $xfielddataname str_replace"|""&#124;"$xfielddataname );
                    
    $xfielddatavalue str_replace"|""&#124;"$xfielddatavalue );
                    
    $filecontents[] = "$xfielddataname|$xfielddatavalue";
                }
                
                
    $filecontents implode"||"$filecontents );
            } else
                
    $filecontents '';
    А ещё не плохо бы записать результат в БД:
    PHP:
    xfields='$filecontents'
    Это ы INSERT добавить надо будет.

    Но опять же, этот код забирает данные из адресной строки ($_GET), а не $_POST, следовательно его надо переписывать.

    А Ваш код отвечает лишь за вывод в форму доп полей...