3

こんにちはdrupalの初心者です、親切に新しいユーザーを追加する方法をガイドします、私はuser_saveを持つユーザーモジュールが使用できることを知っていますが、それを実装する方法と場所は?
以下のカスタムフォームの送信ハンドラーでこの関数を作成する必要がありますか?

function registerme_newform($form, &$form_state) 
{
$form = array();
$form['account details'] = array(
'#type' => 'fieldset',
'#title' => t('Account Details'),
'#description' => t('Enter Personal Credentials'),
);
$form['account details']['first name'] = array(
'#type' => 'textfield',
'#title' => t('First Name'),
'#default_value' => t('Be sure of your first name'),
'#attributes' => array(
'onblur' => "if (this.value == '') {this.value = 'Be sure of your first name'}",
'onfocus' => "if (this.value == 'Be sure of your first name') {this.value = ''}" 
  , ), 
   ); 
 $form['account details']['last name'] = array(
'#type' => 'textfield',
'#title' => t('Last Name'),
'#default_value' => t('Be sure of your last name'),
'#attributes' => array(
'onblur' => "if (this.value == '') {this.value = 'Be sure of your last name'}",
'onfocus' => "if (this.value == 'Be sure of your last name') {this.value = ''}" 
   , ), );

 $form['account details']['email'] = array(
'#type' => 'textfield',
'#title' => t('E-Mail'),
'#required' => TRUE,
'#default_value' => t('Email acts as username.Dont forget it!'),
'#attributes' => array(
'onblur' => "if (this.value == '') {this.value = 'Email acts as username.Dont forget 
 it!'}",
'onfocus' => "if (this.value == 'Email acts as username.Dont forget it!')
 {this.value = ''}" 
   , ), 
 );

$form['account details']['password'] = array(
'#type' => 'password',
'#title' => t('Password'),
'#maxlength' => 60,
'#size' => 60,
'#required' => TRUE,
'#description' => t('Password should be atleast 6 characters long.'),
);

 $form['home'] = array(
'#type' => 'fieldset',
'#title' => 'Home Address',
'#description' => t('Enter Personal Residential Credentials')
 );

 $form['home']['street'] = array(
'#type' => 'textfield',
'#title' => 'Street Address',
 );

 $form['home']['city'] = array(
'#type' => 'textfield',
'#title' => 'City',
 );

 $form['work'] = array(
'#type' => 'fieldset',
'#title' => 'Work Address',
 '#description' => t('Enter Official Address')
 );

 $form['work']['street'] = array(
'#type' => 'textfield',
'#title' => 'Street Address',
 );

 $form['work']['city'] = array(
'#type' => 'textfield',
'#title' => 'City',
);

 $form['submit'] = array(
 '#type' => 'submit',
 '#value' => t('Register Me'),
 );

 return $form;

 }

 function registerme_newform_validate(&$form, &$form_state)
 {
 if($form_state['values']['account details']['first name']=='Be sure of your first
 name')
 {
  form_set_error('first name',t('Please enter your first name'));
 }
 } 
 function registerme_newform_submit(&$form, &$form_state)
 {
 dsm($form_state); 
  }


また、データベースに値がどのように入力されるのか、つまり、これらのカスタムフィールドがデータベースにどのように追加されるのかを知りたいですか?親切に感謝を導きます。

4

2 に答える 2

1

この問題に対して別のアプローチを実装しました。主要なユーザー情報を求めるエンティティ フォーム ( https://drupal.org/project/entityform ) を作成しました。また、profile2 モジュールをインストールして、別のプロファイルを作成できるようにしました。フォームが送信されると、ルールがトリガーされます。このルールにより、ユーザーを作成し、リンクされたプロファイルを作成してから、新しいユーザー エントリへのリンクを含むメールを管理者に送信して、管理者が確認してアクティブ化できるようにすることができます。

PHP で解決したくない場合、または作成時に追加のコンテンツを作成したい場合に適した代替手段です。

于 2014-01-17T04:27:31.603 に答える