Php Drupal 7自定义用户注册表单

Php Drupal 7自定义用户注册表单,php,drupal-7,Php,Drupal 7,我对drupal是新手 我需要通过添加id、mobile等字段自定义注册表 我可以通过创建自定义模块来实现这一点吗 如果是,请任何人帮我简单介绍一下如何创建和覆盖默认的用户注册提交功能。我必须将这些详细信息插入到另一个表中,还必须将数据作为服务请求传递 我创建了一个具有功能的自定义模块 module_form_alter(&$form,&$form_state,$form_id){ $form['#submit'] = 'module_form_submit'; if($for

我对drupal是新手

我需要通过添加id、mobile等字段自定义注册表

我可以通过创建自定义模块来实现这一点吗

如果是,请任何人帮我简单介绍一下如何创建和覆盖默认的用户注册提交功能。我必须将这些详细信息插入到另一个表中,还必须将数据作为服务请求传递

我创建了一个具有功能的自定义模块

module_form_alter(&$form,&$form_state,$form_id){
$form['#submit'] = 'module_form_submit';

if($form_id == 'user_register_form'){ 
        //print_r($form_id);
        $form['email'] = array(
                '#type' => 'textfield',
              '#title' => t('id'),
              '#default_value' => '',
              '#size' => 60,
              '#maxlength' => 15,
              '#required' => TRUE,
         );
    }
}

function module_form_submit($form, &$form_state){
  echo "test";
 exit();
}
模块_form _alter正在被调用,我可以在注册屏幕上看到新字段,但是提交功能仍然没有被调用。我需要覆盖默认的drupal注册提交

我的theme template.php中已经有以下函数

function templatename_theme() {
  $items = array();

  $items['user_login'] = array(
    'render element' => 'form',
    'path' => drupal_get_path('theme', 'portal') . '/templates',
    'template' => 'user-login',
    'preprocess functions' => array(
       'portal_preprocess_user_login'
    ),
  );
  $items['user_register_form'] = array(
    'render element' => 'form',
    'path' => drupal_get_path('theme', 'portal') . '/templates',
    'template' => 'user-register-form',
    'preprocess functions' => array(
      'portal_preprocess_user_register_form'
    ),
  );
  $items['user_pass'] = array(
    'render element' => 'form',
    'path' => drupal_get_path('theme', 'portal') . '/templates',
    'template' => 'user-pass',
    'preprocess functions' => array(
      'portal_preprocess_user_pass'
    ),
  );

  return $items;
}
user-register-form.tpl.php

    <div class="form-group">
        <?php print drupal_render_children($form); ?>
    </div>

页面--user--register.tpl.php和html

<div id="login-page">
        <div class="container">     
                 <div class="form-login" >
                <h2 class="form-login-heading"><a href="<?php echo $home; ?>"><img src="<?php echo drupal_get_path('theme', 'portal') . '/images/logo.png'; ?>"  width="100"></a><?php echo $createaccount; ?></h2>
                <div class="login-wrap">
                <?php  
                $elements = drupal_get_form("user_register_form"); 
                $form = drupal_render($elements);
                echo  $form ?>

         <?php if ($messages):?>
            <div id="messages-console" class="clearfix">
                <div class="grid_12">
                    <div class="mt-grid-fix">
                    <?php print $messages; ?>
                    </div>
                </div>
            </div>
            <?php endif; ?>



            </div>
                    </div>

    </div>
  </div>

这种方法行吗?还是我应该改变这种方法以使自定义模块正常工作?

您可以转到:

admin/config/people/accounts/fields
并添加所需的字段

在字段集“用户设置”中,不要忘记选中“显示在用户注册表上”。


请分享您迄今为止的尝试。在那个之后你们就开始工作了,若你们面临这个问题,你们可以发布你们的代码。@Panther谢谢你们的回复!我已经编辑了qsn。感谢您的回复!通过这种方式可以添加新字段,如何操作提交功能?