3

我一直在通過Drupal文檔和論壇轉移,但它有點令人生畏。如果任何人有一個簡單或直接的方法添加字段到管理部分的網站信息頁面,我真的很感激它。將字段添加到Drupal 6.12上的網站信息部分

作爲背景,我只是試圖添加用戶可定製的字段網站廣泛的字段/值。

回答

6

在自定義模塊中,您可以使用hook_form_alter()向該窗體添加額外的字段。例如:

function mymodule_form_alter(&$form, $form_state, $form_id) { 
    if ($form_id == 'system_site_information_settings') { 
    $form['my_module_extra_setting'] = array(
     '#type' => 'checkbox', 
     '#title' => t('Use my setting'), 
     '#default_value' => variable_get('my_module_extra_setting', TRUE), 
    ); 
    } 
} 

任何地方在你的代碼,你需要訪問這是我們用來填充該表單元素的默認值中保存的設置本身,你可以使用相同的呼叫:variable_get('my_module_extra_setting', TRUE)

+0

右鍵 - 原諒我noobness :) 1.是你發佈的代碼 - 準備使用?我可以把它放進去,它會工作嗎? 2.它到底在哪裏? template.php文件? 3.我做了一個解決方法 - 創建了一個新的內容類型,並用CCK創建了我需要的所有變量。在page.tpl.php文件中,我調用了所有存儲在該節點中的字段 - 因此現在我需要可以輕鬆訪問的任何類型的變量。這不好嗎?我已經使用pathauto將頁面的鏈接重定向到安全主頁(並非真正需要,但以防萬一 – 2009-06-12 01:16:09

1

的功能應該是mymodule_form_alter的代替mymodule_hook_form_alter

1

爲了從您的新的自定義字段保存價值,你將需要添加第二個提交項目提交陣列如:

$form['#submit'][] = 'misc_system_settings_form_submit'; 

,然後添加一個函數來處理提交,如:

function misc_system_settings_form_submit($form_id, $form_values) { 
    // Handle saving of custom data here 
    variable_set('access_denied_message', $form_values['values']['custom_access_denied_message']); 
}