我创建了一个定制模块,使用variable_set()设置系统变量。我希望拥有适当权限的人能够通过管理界面编辑此变量。我知道有一些贡献模块可以编辑系统变量,但我想在我的定制模块中包含这个功能。我希望可以钩入"网站信息"管理员表单或者"文件系统"管理员表单,并包括一个文本框,让用户可以编辑这个系统变量并保存。怎样做最好呢?
谢谢!
谢谢!
网站信息表单使用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()
表单也是同样的情况。
#weight
属性来控制顺序,例如$form['element']['#weight'] = -10
将会将其上移。然后您只需要稍微调整一下,直到找到合适的权重即可。 - Clivedpm()
函数将表单数组显示在屏幕上(dpm($form);
)。然后你就可以检查它并查看需要移动哪些元素。 - Clive