You are here

function cck_table_field in CCK Table Field 6

Implementation of hook_field().

File

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

Code

function cck_table_field($op, &$node, $field, &$items, $teaser, $page) {
  switch ($op) {
    case 'validate':
      if ($field['widget']['enforce_misalign_col']) {
        $allowed_values = content_allowed_values($field);
        if (is_array($items)) {
          foreach ($items as $delta => $item) {
            $error_element = isset($item['_error_element']) ? $item['_error_element'] : '';
            if (is_array($item) && isset($item['_error_element'])) {
              unset($item['_error_element']);
            }
            if ($item['value'] != '') {
              $lines = explode("\n", $item['value']);
              $lines = array_map('trim', $lines);
              $lines = array_filter($lines, 'strlen');
              $cell_count;
              foreach ($lines as $line) {
                if (!$cell_count) {
                  $cell_count = count(explode('|', $line));
                }
                elseif ($cell_count != count(explode('|', $line))) {
                  form_set_error($error_element, t('%name: mis-align number of columns.', array(
                    '%name' => t($field['widget']['label']),
                  )));
                  break;
                }
              }
            }
          }
        }
      }
      return $items;
  }
}