You are here

function field_tools_field_overview in Field tools 7

Same name and namespace in other branches
  1. 8 field_tools.admin.inc \field_tools_field_overview()

Page callback for the field overview list.

1 string reference to 'field_tools_field_overview'
field_tools_menu in ./field_tools.module
Implements hook_menu().

File

./field_tools.admin.inc, line 10
Contains admin callbacks for the Field tools module.

Code

function field_tools_field_overview() {
  $output = '';
  $entity_info = entity_get_info();
  $field_types = field_info_field_types();
  $fields = field_info_fields();

  // Sort the fields, defaulting to field name.
  $query = drupal_get_query_parameters();
  $sort = isset($query['sort']) ? check_plain($query['sort']) : 'field_name';
  uasort($fields, function ($a, $b) use ($sort, $field_types) {
    switch ($sort) {
      case 'type':

        // Sort by the field type label.
        return strcmp($field_types[$a[$sort]]['label'], $field_types[$b[$sort]]['label']);
      default:
        return strcmp($a[$sort], $b[$sort]);
    }
  });
  $rows = array();
  foreach ($fields as $field_name => $field) {
    $row = array();

    // Column: field name.
    $row[] = l($field_name, 'admin/reports/fields/field/' . $field_name);

    // Column: field type.
    $row[] = $field_types[$field['type']]['label'];

    // Column: field instances.
    $row[] = field_tools_field_instances_list($field);

    // Column : operations.
    $items_ops = array();
    $items_ops[] = l('edit instances', "admin/reports/fields/field/{$field_name}/edit");
    $items_ops[] = l('delete instances', "admin/reports/fields/field/{$field_name}/delete");
    $row[] = theme('item_list', array(
      'items' => $items_ops,
    ));
    $rows[] = $row;
  }
  $header = array(
    l(t('Field name'), current_path(), array(
      'query' => array(
        'sort' => 'field_name',
      ),
    )),
    l(t('Type'), current_path(), array(
      'query' => array(
        'sort' => 'type',
      ),
    )),
    t('Instances'),
    t('Operations'),
  );
  $output .= theme('table', array(
    'rows' => $rows,
    'header' => $header,
  ));
  drupal_add_css(drupal_get_path('module', 'field_tools') . '/field_tools.css');
  return $output;
}