You are here

variable_admin.inc in Variable 7

Same filename and directory in other branches
  1. 7.2 variable_admin/variable_admin.inc

Variable API module - Admin UI

File

variable_admin/variable_admin.inc
View source
<?php

/**
 * @file
 * Variable API module - Admin UI
 */

/**
 * Variable overview, by group
 */
function variable_admin_page_group($group = NULL) {
  variable_include();
  if ($group && ($group_info = variable_get_group($group))) {
    $group_info += array(
      'description' => '',
    );
    drupal_set_title($group_info['title']);
    $list = variable_list_group($group);
    $build['description']['#markup'] = $group_info['description'];
    $build['form'] = drupal_get_form('variable_edit_form', array_keys($list));
    return $build;
  }
  else {

    // Groups overview
    $build['groups'] = array(
      '#type' => 'vertical_tabs',
    );
    foreach (variable_get_group() as $group => $info) {
      if ($group_variables = variable_list_group($group)) {
        $build['groups'][$group] = array(
          '#type' => 'fieldset',
          '#title' => $info['title'],
          '#collapsible' => TRUE,
          '#collapsed' => TRUE,
          '#description' => (!empty($info['description']) ? $info['description'] . ' ' : '') . l(t('Edit group variables'), 'admin/config/system/variable/group/' . $group),
        );
        $build['groups'][$group]['list'] = variable_admin_group_list($group_variables);
      }
    }
    return $build;
  }
}

/**
 * Build list of variables for group
 *
 * @return Renderable array
 */
function variable_admin_group_list($variables) {
  $list = array();
  foreach ($variables as $name => $variable) {
    $type = variable_get_type($variable['type']);
    $list[$name] = array(
      l($variable['title'], 'admin/config/system/variable/edit/' . $name),
      $type['title'],
      variable_format_value($variable),
    );
  }
  return array(
    '#theme' => 'table',
    '#rows' => $list,
  );
}

/**
 * Variable overview, by group
 */
function variable_admin_page_module($name = NULL) {
  variable_include();
  if ($name && in_array($name, module_list())) {
    $modules = system_list('module_enabled');
    $module = $modules[$name];
    drupal_set_title($module->info['name']);
    $list = variable_list_module($name);
    $build['description']['#markup'] = $module->info['description'];
    $build['form'] = drupal_get_form('variable_edit_form', array_keys($list));
    return $build;
  }
  else {

    // Groups overview
    $build['modules'] = array(
      '#type' => 'vertical_tabs',
    );
    foreach (system_list('module_enabled') as $module) {
      if ($variables = variable_list_module($module->name)) {
        $build['modules'][$module->name] = array(
          '#type' => 'fieldset',
          '#title' => $module->info['name'],
          '#collapsible' => TRUE,
          '#collapsed' => TRUE,
          '#description' => $module->info['description'] . ' ' . l(t('Edit module variables'), 'admin/config/system/variable/module/' . $module->name),
          '#group' => 'modules',
        );
        $build['modules'][$module->name]['list'] = variable_admin_group_list($variables);
      }
    }
    return $build;
  }
}

Functions

Namesort descending Description
variable_admin_group_list Build list of variables for group
variable_admin_page_group Variable overview, by group
variable_admin_page_module Variable overview, by group