You are here

function theme_content_multigroup_display_table_multiple in Content Construction Kit (CCK) 6.3

Theme a multigroup in 'table-multiple' format.

Each subgroup has its own table row with a separate cell for each field. No output is generated if all fields are empty.

File

modules/content_multigroup/content_multigroup.node_view.inc, line 214
Implementation of node view functions for content multigroup.

Code

function theme_content_multigroup_display_table_multiple($element) {
  $headers = array();
  foreach ($element['#fields'] as $field_name => $field) {
    $label_display = isset($field['display_settings']['label']['format']) ? $field['display_settings']['label']['format'] : 'above';
    $headers[] = array(
      'data' => $label_display != 'hidden' ? check_plain(t($field['widget']['label'])) : '',
      'class' => 'content-multigroup-cell-' . str_replace('_', '-', $field_name),
    );
  }
  $rows = array();
  foreach (element_children($element) as $delta) {
    $cells = array();
    $empty = TRUE;
    foreach ($element['#fields'] as $field_name => $field) {
      $item = drupal_render($element[$delta][$field_name]);
      $cells[] = array(
        'data' => $item,
        'class' => $element[$delta]['#attributes']['class'] . ' content-multigroup-cell-' . str_replace('_', '-', $field_name),
      );
      if (!empty($item)) {
        $empty = FALSE;
      }
    }

    // Get the row only if there is at least one non-empty field.
    if (!$empty) {
      $rows[] = $cells;
    }
  }
  return count($rows) ? theme('table', $headers, $rows, $element['#attributes']) : '';
}