Let’s create the admin settings page base on the example module we used in
Drupal – Introduction to Drupal Theming @ 3
In order to add the settings page, we need to add a new menu in in hook_menu() and the corresponding callback function which is ykyuen_admin() in this example.
ykyuen.info
; $Id$ name = Theme customized block description = Theme the customized block. Ref: https://ykyuen.wordpress.com package = "YKYUEN" core = 6.x version = 6.x-1.0
ykyuen.module
<?php /** * Form builder for ykyuen_admin form. * * @see system_settings_form() */ function ykyuen_admin() { $form = array(); $form['eureka_greeting'] = array( '#type' => 'textfield', '#title' => 'Greeting message', '#default_value' => variable_get('eureka_greeting', 'Hello World!'), '#size' => 60, '#maxlength' => 255, '#description' => 'Please input the greeting message.', '#required' => TRUE, ); return system_settings_form($form); } /** * Implements hook_menu() */ function ykyuen_menu() { $items = array(); $items['admin/settings/ykyuen'] = array( 'title' => 'Eureka Settings', 'description' => 'The eureka settings page.', 'page callback' => 'drupal_get_form', 'page arguments' => array('ykyuen_admin'), 'access arguments' => array('access administration pages'), 'type' => MENU_NORMAL_ITEM, ); return $items; } /** * Implementation of hook_block(). */ function ykyuen_block($op = 'list', $delta = 0, $edit = array()) { switch ($op) { case 'list': $blocks[0]['info'] = t('Eureka'); $blocks[0]['cache'] = BLOCK_NO_CACHE; return $blocks; case 'view': switch ($delta) { case 0: $block['content'] = theme('eureka', 'Welcome to Eureka!', 'https://ykyuen.wordpress.com'); break; } return $block; } } /** * Implementation of hook_theme(). */ function ykyuen_theme() { return array( 'eureka' => array( 'arguments' => array( 'name' => NULL, 'link' => NULL ), 'template' => 'eureka', ) ); } /** * Implementation of theme_eureka(). */ function ykyuen_preprocess_eureka($variables) { $variables['extra'] = variable_get('eureka_greeting', 'Hello World!'); }
Clear the Drupal cache and you could access our module settings page now.
Change the greeting message and save the form.
Done =)
Reference: Drupal Docs – Creating a module configuration (settings) page