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']); 
} 
相关问题