You are here

function cck_table_field_formatter in CCK Table Field 5

Implementation of hook_field_formatter().

File

./cck_table.module, line 72
Defines a field type that outputs data in a table.

Code

function cck_table_field_formatter($field, $item, $formatter, $node) {
  if (!isset($item['value'])) {
    return '';
  }
  switch ($formatter) {
    case 'default':
      $data = $item['value'];
  }
  if (!empty($data)) {
    $header = array();
    $rows = array();
    $lines = explode("\n", $data);
    $lines = array_map('trim', $lines);
    $lines = array_filter($lines, 'strlen');
    foreach ($lines as $line) {
      $cells = explode('|', $line);
      if (count($header) == 0 && count($lines) > 1) {
        $header = $cells;
      }
      else {
        $rows[] = $cells;
      }
    }
    if (count($rows) > 0) {
      $attributes = array();
      if (!empty($field['css_id'])) {
        $attributes['id'] = $field['css_id'] . '-' . $node->nid;
      }
      if (!empty($field['css_class'])) {
        $attributes['class'] = $field['css_class'];
      }
      return theme('table', $header, $rows, $attributes);
    }
  }
}