--- field_table.inc.old 2005-11-03 17:38:51.000000000 +0000 +++ field_table.inc 2006-03-03 19:37:53.750000000 +0000 @@ -5,26 +5,31 @@ } function flexinode_field_table_form($field, $node) { - + // prepare default values for the table $fieldname = 'flexinode_'. $field->field_id; - if ($node->$fieldname) { - $table=$node->$fieldname; - $rows=count($table)+1; - $cols=count($table[0])+1; - } - else { - $table=array(); - $rows=8; - $cols=5; - } + $table = ($node->$fieldname) ? $node->$fieldname : array(); + $rows = ($node->$fieldname) ? count($table)+1 : $field->rows; + $options_cols = $field->options[1]; + // prepare table + $title = t($field->label); $output = ''; - $output .= form_hidden($fieldname.'_rows',$rows); + $output .= form_hidden($fieldname.'_rows', $rows); $output .= '
'; $output .= '| $column | "; + $colcount++; + } + } + $output .= '||
|---|---|---|
';
$value = (isset($table[$i]) && isset($table[$i][$j])) ? $table[$i][$j] : '';
$output .= form_textarea('', $fieldname.'_'.$i.'][', $value, 10, 3);
@@ -37,43 +42,41 @@
}
function flexinode_field_table_validate($field, $node) {
-
$fieldname = 'flexinode_'. $field->field_id;
if (!isset($_POST['edit'])) {
return array('value' => $node->$fieldname);
}
$rows = $_POST['edit'][$fieldname.'_rows'];
$value = array();
- $deleted_cols = array();
- foreach ($_POST['edit'][$fieldname.'_0'] as $key=>$val) {
- if (empty($val) && $key) {
- $deleted_cols[] = $key;
- }
- }
+
+ // foreach row
for ($i = 0; $i <= $rows; $i++) {
- if ($i && empty($_POST['edit'][$fieldname.'_'.$i][0])) {
- continue;
- }
$newrow = $_POST['edit'][$fieldname.'_'.$i];
- foreach ($deleted_cols as $key)
- unset($newrow[$key]);
- $value[] = array_values($newrow); // reindex from 0
+ // validate row
+ $hasvalues = false;
+ foreach($newrow as $col) {
+ if (!empty($col))
+ $hasvalues = true;
+ }
+ // if the row has some values, keep it
+ if ($hasvalues)
+ $value[] = array_values($newrow); // reindex from 0
}
+
return (array('value' => $value));
}
-function flexinode_field_table_insert($field, $node) {
+function flexinode_field_table_db_select($field) {
$fieldname = 'flexinode_'. $field->field_id;
- db_query("INSERT INTO {flexinode_data} (nid, field_id, serialized_data) VALUES (%d, %d, '%s')", $node->nid, $field->field_id, serialize($node->$fieldname));
+ return $fieldname .'.serialized_data AS '. $fieldname;
}
-function flexinode_field_table_db_select($field) {
+function flexinode_field_table_insert($field, $node) {
$fieldname = 'flexinode_'. $field->field_id;
- return $fieldname .'.serialized_data AS '. $fieldname;
+ db_query("INSERT INTO {flexinode_data} (nid, field_id, serialized_data) VALUES (%d, %d, '%s')", $node->nid, $field->field_id, serialize($node->$fieldname));
}
function flexinode_field_table_load($field, $node) {
-
$fieldname = 'flexinode_'. $field->field_id;
if (isset($table_phase)) $table_phase++; else $table_phase=0;
return unserialize($node->$fieldname);
@@ -82,21 +85,71 @@
function flexinode_field_table_format($field, $node, $brief = 0) {
$fieldname = 'flexinode_'. $field->field_id;
- $table = $node->$fieldname;
- $output = "
'. $output .' ';
return $output;
}
+/** @} End of addtogroup themeable */
+
?>
|