【发布时间】:2010-11-02 07:14:18
【问题描述】:
我一直在浏览 drupal 文档和论坛,但这有点令人生畏。如果有人有一种简单或直接的方法可以在管理部分的站点信息页面中添加字段,我将不胜感激。
作为背景,我只是想添加用户可自定义的字段站点范围的字段/值。
【问题讨论】:
标签: php drupal content-management-system drupal-6 content-management
我一直在浏览 drupal 文档和论坛,但这有点令人生畏。如果有人有一种简单或直接的方法可以在管理部分的站点信息页面中添加字段,我将不胜感激。
作为背景,我只是想添加用户可自定义的字段站点范围的字段/值。
【问题讨论】:
标签: php drupal content-management-system drupal-6 content-management
在自定义模块中,您可以使用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)
【讨论】:
为了保存新自定义字段中的值,您需要向提交数组添加第二个提交项,例如:
$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']);
}
【讨论】:
函数应该是 mymodule_form_alter 而不是 mymodule_hook_form_alter
【讨论】: