Public feed #726981

Miscellany

public text v1 · immutable
Raw Edit
·published 2007-10-05 17:30 UTC
rendered paste body
<?php

/**
 * Permissions
 */
function utilities_perm() {
  return array('access utilities');
}

/**
 * Menu Hooks
 */
function utilities_menu($may_cache) {
  $items = array();
  if ($may_cache) {
    $items[] = array(
      'path'     => '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;
  
}