2010-11-17 31 views
3

以下是我的目標: 將內容配置文件CCK字段「field_firstname」和「field_lastname」自動生成用戶名。在Drupal註冊表(user_register)中訪問內容配置文件CCK字段

我的方法:使用hook_form_altar和提交處理程序自動附加用戶名而不是觸摸db方案來創建自定義模塊。

我的問題:我找不到如何訪問註冊表單上的內容配置文件額外的CCK字段。現在我有一個這個活的副本..我使用var_dump($ form)來查找字段。 Live location here

這是我的顯示模塊的代碼,任何指針將不勝感激

/** 
* Implementation of hook_form_alter(). 
* 
*/ 
function realname_registration_form_alter(&$form, $form_state, $form_id) { 
    switch ($form_id) { 
    case 'user_register': 
     if (isset($form['account']) && is_array($form['account'])) { 
     $form['account']['name']['#type'] = 'hidden'; 
     $form['account']['name']['#value'] = user_password(); 
     $form['account']['mail']['#title'] = t('E-mail'); 
     } 
     else { 
     $form['name']['#type'] = 'hidden'; 
     $form['name']['#value'] = user_password(); 
     $form['mail']['#title'] = t('E-mail'); 
     } 
     //$form['#submit'][] = 'realname_registration_name_submit'; 
     print "<pre>"; 
     print_r($form); 
     print "</pre>"; 
     break; 
    } 
} 


/** 
* submit handler 
* 
*/ 
function realname_registration_name_submit($form, &$form_state) { 

} 

回答

1

了在表單提交的值,始終位於$form_state['values'][...]。如果您遇到麻煩,請打印出變量並檢查它。

在你的情況下,看起來這是你所需要的:你需要

$first_name = $form_state['values']['field_firstname']; 
$last_name = $form_state['values']['field_lastname']; 

有一點要注意的是,用戶名必須是唯一的,而名字可能不是。您還需要公開新用戶的用戶名,以便他們知道如何登錄。

相關問題