[support] User register form in 2 page or call my function for submit

Davide Michel 'ZioBudda' Morelli michel at ziobudda.net
Thu Jan 3 16:58:36 UTC 2008


Ivan Sergio Borgonovo ha scritto:
> On Thu, 03 Jan 2008 17:17:51 +0100
> Davide Michel 'ZioBudda' Morelli <michel at ziobudda.net> wrote:
>
>   
>> Hi all. I want to modify the user registration in 2+ steps or
>> better: I want that the form that new user use for registration
>> (/user/register) is splitted in 2+ page.  This because via profile
>> module I have added 15 new field.
>>
>> I know that I can write a form splitted in 2 page (I read "Pro
>> Drupal Development), but I don't want to create the register form
>> from zero.  I have tried to delete the $form['#submit'] value via
>> hook_form() but with no results. Is there a way to do this without
>> create a new module for user_register ?
>>     
>
> What about alter_form + a redirect to another piece of registration?
>   
It does not work. I don't know why, but user_register function is called 
with or without other "validation".

> But well no luck if you plan to still use profile.module and avoid to
> write your own module.
>   
Why this ? If I use profile.module I use core Drupal with a form/admin 
page where I can insert new item without modify php code lines (if I use 
my module).
> My main concern about approaching this problem this way would be to
> deal with core in a way that in the future may not be considered
> kosher or break up once you add other modules etc...
>
>   
However this is my alter_form function:

function mw_ur_form_alter($form_id,&$form) {
    if ($form_id == 'user_register') {
        //print_r($form);
        if (!isset($form['#post']['step'])) {
            $form['#multistep'] = TRUE;
              $form['#tree'] = TRUE;
            $form['#redirect'] = FALSE;
              $form['step'] = array  (
                '#type' => 'hidden',
                '#value' => 1
            );
            unset($form['Informazioni personali']);
            $form['submit'] = array(
                '#value' => 'next',
                '#type' => 'submit',
                '#weight' => 30
            );
        } else {
            /*
            $form['#multistep'] = TRUE;
            $form['#tree'] = TRUE;
            $form['#redirect'] = FALSE;
            $form['account']['name']['#default_value'] = 
$form['#post']['account']['name'];
            $form['account']['mail']['#default_value'] = 
$form['#post']['account']['mail'];
            */
            unset ($form['Residenza']);          
        }
        /**
         * only for test
         */
        /*foreach($form as $key => $value) {
            print("-".$key."-<br>");
        }*/

    }
}

Now my problem is this: I compile the "username and mail field" (only 
items required) then I click on the "next" button and I get the same 
page (ok, this is correct) but with  username and email field  empty and 
an error messagge that say me that username and mail filed must be 
non-empty. If I see the $form values via print_r() I can see that the 
$form['post'] are not empty (see my else code).

M.

-- 
Michel 'ZioBudda' Morelli                       michel at ziobudda.net
Consulenza sistemistica in ambito OpenSource.
Sviluppo applicazioni web dinamiche (LAMP+Ajax)
Telefono: 0200619074
Telefono Cell: +39-3939890025 --  Fax: +39-0291390660

http://www.ziobudda.net                         ICQ: 58351764  
http://www.ziobuddalabs.it                      Skype: zio_budda
http://www.ajaxblog.it        			MSN: michel at ziobuddalabs.it                   
						JABBER: michel at gmail.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.drupal.org/pipermail/support/attachments/20080103/0d530899/attachment.htm 


More information about the support mailing list