Drupal 6: Create an admin settings page for your module
Here’s a code snippet to show you how to create an admin settings page for your module. In this example, I’ll create a form that allows the user to enable/disable checkboxes for each node type. This might be useful if you wanted to modify the functionality of a node and allow the user to choose which nodes.
<?php
function MYMODULE_menu() {
$items = array();
// ...code...
$items['admin/settings/MYMODULE'] = array(
'title' => t('MY TITLE'),
'description' => t('MY DESCRIPTION'),
'page callback' => 'drupal_get_form',
'page arguments' => array('MYMODULE_admin_settings'),
'access arguments' => array('administer site configuration'),
);
// ...code...
return $items;
}
function MYMODULE_admin_settings() {
$form = array();
// get a list of node types
$nodeTypes = node_get_types();
// loop through node types and create an array of options
$options = array();
foreach ($nodeTypes as $k => $v) {
$options[$k] = $v->name;
}
// add form input element
$form['MYMODULE_enabled_node_types'] = array(
'#type' => 'checkboxes',
'#title' => t('Enabled node types'),
'#options' => $options,
'#default_value' => variable_get('MYMODULE_enabled_node_types', array()),
);
return system_settings_form($form);
}
?>
Screenshot: