You are here

util.module in Util 5

Same filename and directory in other branches
  1. 6.3 util.module
  2. 6 util.module
  3. 6.2 util.module
  4. 7 util.module

File

util.module
View source
<?php

/*
 * Implementation of hook_menu
 */
function util_menu($may_cache) {
  $items = array();
  $items[] = array(
    'path' => 'admin/settings/util',
    'title' => t('Utility module settings'),
    'description' => t('Utility module settings'),
    'callback' => 'drupal_get_form',
    'callback arguments' => array(
      'util_settings',
    ),
    'access' => user_access('administer util'),
    'type' => MENU_NORMAL_ITEM,
  );
  if (!$may_cache) {
    util_run_utilities();
  }
  return $items;
}

/*
 * Run the utilities
 */
function util_run_utilities() {
  global $hook_files;
  $files = drupal_system_listing("\\.inc", drupal_get_path('module', 'util') . "/utilities", 'name', 1);
  ksort($files);
  $hook_files = array();
  $hooks = array();
  foreach ($files as $file) {
    include $file->filename;
    $hooks = array_merge(call_user_func($file->name . "_util", "hook registry"), $hooks);
    $hook_files[$file->name] = call_user_func($file->name . "_util", "hook registry");
  }

  /*
   *  Functionality to be used in a future version - see 5.x-2.x-dev
   *  Doesn't work yet - don't uncomment
   */

  /*
  foreach ($hooks as $hook)
  {
  	$call = '';
    foreach($hook_files as $file => $hook_file) {
      foreach ($hook_file as $hook) {
        if(function_exists($file .'_util_'. $hook)) {
          $call .= 'call_user_func_array(\''.$file .'_util_'. $hook .'\', $args);';
        }
      }
    }
    eval("
    function util_". $hook ."() {
      \$args = func_get_args();
      ". $call ."
    }
    ");
  }
  */
}
function util_settings() {
  global $hook_files;
  $form = array();
  foreach ($hook_files as $file => $blank) {
    $form = array_merge(call_user_func($file . '_util', 'settings form'), $form);
  }
  return system_settings_form($form);
}

/**
 * Implementation of hook_form_alter().
 */
function util_form_alter($form_id, &$form) {
  if (isset($form['validation_modules'])) {
    system_modules_util_form_alter($form_id, $form);
  }
}

/**
 * Implementation of hook_perm().
 */
function util_perm() {
  return array(
    'administer util',
  );
}

/*
 * Determines the node type of the current url compared to a passed in list
 *
 * @param $types
 *    array types to check against
 * @return
 *    boolean of the node type of the current url
 */
function util_check_node_type($types) {
  $return = FALSE;
  if (arg(0) == 'node' && is_numeric(arg(1))) {
    $node = node_load(array(
      'nid' => arg(1),
    ));
    foreach ($types as $type) {
      if ($node->type == $type) {
        $return = TRUE;
      }
    }
  }
  return $return;
}