2013-05-14 24 views

回答

1

如果您在Drupal 7站點上使用了自定義模塊,則可以包含一個爲您進行轉換的實現hook_form_alter。 (對於這個鉤子的詳細說明,請參見http://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_form_alter/7。)

基本上,你會想鉤到你想改變(也許是在if條款測試的$form_id以確保形式,它的格式匹配你想改變),並創建兩個新的字段小時和分鐘,同時隱藏內置字段,顯示你試圖存儲的時間。這裏有一個例子:

function mymodule_form_alter(&$form, &$form_state, $form_id) { 
    if ($form_id == 'my_form_id') { 
    $form['original_time_field']['#type'] = 'hidden'; 
    $hours = array(); 
    for ($digit = 0; $digit < 24; $digit++) { 
     $hours[$digit] = $digit; 
    } 
    $minutes = array(); 
    for ($digit = 0; $digit < 60; $digit++) { 
     $minutes[$digit] = $digit; 
    } 
    $form['hours'] = array(
     '#type' = 'select', 
     '#options' = $hours, 
     '#title' = t('Hours'), 
    ); 
    $form['minutes'] = array(
     '#type' = 'select', 
     '#options' = $minutes, 
     '#title' = t('Minutes'), 
    ); 
    } 
} 

然後你有幾個選擇。您可以包含自定義.js文件,該文件偵聽小時和分鐘下拉的更改並即時重寫隱藏的時間字段值,也可以爲有問題的表單編寫自定義提交處理程序(使用表單API或實現相應的hook_form_submit函數),該函數使用$form_state變量組合您的兩個虛擬字段並將結果值寫入實時字段。