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;
}
}