2014-09-25 88 views
0

我檢索內容類型與下面的代碼如何插入到數據庫Drupal的自定義字段

$form['ct'] = array(
    '#type' => 'checkboxes', 
    '#options' => node_type_get_names(), 
    '#title' => t('Hangi tür içerikler hakkında bilgi almak istersiniz?'), 
); 

,它提供了以下輸出

http://i.stack.imgur.com/TOfS6.png

當我按下創建新帳號按鈕,POST陣列是這樣的:

http://i.stack.imgur.com/BtxhC.png

我的問題是我如何插入數據庫這些值和閱讀?

回答

0

有兩種方式保存這些數據並將其與用戶ID($ user-> uid)相關聯。

  1. 爲'admin/config/people/accounts/fields'中的用戶添加一個新字段。假定新的字段名稱是'ct',它是一個列表類型字段。在hook form_alter中,您可以將此選項分配給'ct'。 Drupal會負責保存數據。

  2. 您可以創建單獨的表來保留此信息並在鉤子hook_user_update中使用db_insert函數。要檢索這些信息,您需要在hook_user_load中使用db_query。

+0

對於第一個解決方案,我從Admin Panel中添加了ct,但我不知道如何分配。我創建了form_alter函數,我需要寫什麼? – 2014-09-26 08:09:35

+0

在form_alter中加入: $ form ['#submit'] [] =「function_to_submit_data_in_database」;並將您的邏輯添加到函數名稱「function_to_submit_data_in_database」。確保您的函數在默認提交處理程序之前首先執行。 – 2014-09-26 14:08:30

+0

'函數MY_MODULE_form_alter(&$形式,&$ form_state,$ form_id){ 開關($ form_id){ 情況下 'user_profile_form': $形式[ 'field_ct'] [ 'UND'] [ '#選項'] = node_type_get_names(); 休息; } }' – 2014-09-28 15:43:12

相關問題