'admin/utilities', 'title' => t('Select a script to run'), 'callback' => 'drupal_get_form', 'callback arguments' => array('utilities_form'), 'access' => (user_access('access utilities')), 'type' => MENU_CALLBACK ); $items[] = array( 'path' => 'admin/utilities/run', 'title' => t('Select a script to run'), 'callback' => 'utilities_run', 'access' => (user_access('access utilities')), 'type' => MENU_CALLBACK ); }; return $items; } function utilities_run() { dpr(func_get_args()); } function utilities_form_submit($form_id,$form_values) { $function = $form_values['utility']; if ($function) { if (function_exists($function)) { $output = call_user_func_array($function,$form_values['args']); } } } function utilities_form() { $modules = module_implements('utilities'); foreach ($modules as $module) { $utilities = module_invoke($module,'utilities'); foreach ($utilities as $key => $utility) { $options[$module][$module.'_'.$key] = $utility['title']; } } $form = array(); //$form['#action'] = 'admin/utilities/run'; $form['utility'] = array ( '#type' => 'select', '#title' => 'Utility', '#options' => $options, //'#default_value' => $utility_to_run, ); $form['args'] = array ( '#type' => 'fieldset', '#title' => "Arguments", '#tree' =>true, ); for ($i=0; $i < 5; $i++) { $form['args'][$i] = array ( '#type' => 'textfield', '#title' => 'Arg ' . $i, ); } $form['submit'] = array ( '#type' => 'submit', '#value' => 'Run!', ); return $form; }