我创建了一个使用variable_set()设置系统变量的自定义模块。我希望有权具有权限的人能够通过管理员编辑此变量。我确信有一些贡献的模块允许您编辑系统变量,但我一直在寻找一种方法在我的自定义模块中包含此功能。我想可能挂钩到“站点信息”管理表单或者“文件系统”管理表单,并包含一个文本字段,他们可以编辑这个系统变量,它会保存。什么是最好的方法呢?
感谢
答案 0 :(得分:2)
“网站信息”表单使用system_settings_form()
,这意味着您只需将变量作为元素添加到表单中(使用hook_form_alter()
或,如下所示,hook_form_FORM_ID_alter()
)和系统将处理保存它。
function MYMODULE_form_system_site_information_settings_alter(&$form, &$form_state) {
$form['my_variable_name'] = array(
'#type' => 'textfield', // or whatever element makes sense
'#title' => t('Title'),
'#default_value' => variable_get('my_variable_name', '')
);
}
同样适用于system_file_system_settings()
表格。