print "<meta http-equiv='Content-Type' content='text/html'/>\n"; print "<title></title>\n"; print "<script type='text/javascript' src='common.js' language='javascript'></script>\n"; print "<!-- Form Functions -->\n"; print "<script type='text/javascript'>\n"; print "/* <![CDATA[ */\n\n"; print "function checkDuplicate(){\n"; while ($r = db_fetch_array($t)) { if ($r['sob_' . $r['sob_all_type'] . '_no_duplicates'] == '1') { // eg 'sob_dropdown_no_duplicates' $field = $r['sob_all_name']; // $value = getFormValue($sessionID, $r['sob_all_name']); $value = getFormValue($form_ses, $r['sob_all_name']); $newvalue = $value[0]; if ($r['sob_' . $r['sob_all_type'] . '_format'] != '') { $newvalue = reformatField($value[0], $r['sob_' . $r['sob_all_type'] . '_format'], false); } if (isDuplicate($sessionID, $form, $recordID, $field, $newvalue)) { $T = nuRunQuery("SELECT sob_all_title FROM zzsys_object WHERE zzsys_object_id = '" . $r['zzsys_object_id'] . "'"); $R = db_fetch_object($T); $S = "'there is already a record with a {$R->sob_all_title} of {$dq}" . str_replace('"', '', $value[0]) . "{$dq}'"; print " alert({$S});\n"; print " return;\n"; } } } print " parent.frames['main'].document.forms[0]['beenedited'].value = '0';\n"; print " parent.frames['main'].document.forms[0].action = 'formupdate.php?x=1&r={$recordID}&dir={$dir}&ses={$ses}&f={$formID}&debug={$debug}';\n"; print " parent.frames['main'].document.forms[0].submit();\n"; print "}\n"; print "/* ]]> */ ";
$form = formFields($formID); $dq = '"'; // get all fields used on this form $t = nuRunQuery("SELECT * FROM {$form->sfo_table} WHERE FALSE"); while ($f = db_fetch_field($t)) { $recordFields[] = $f->name; } // get formatting properties for this form's fields $t = nuRunQuery("SELECT sob_all_name, sob_text_format FROM zzsys_object WHERE sob_all_type = 'text' AND sob_zzsys_form_id = '{$formID}'"); while ($r = db_fetch_object($t)) { $fieldProperties[$r->sob_all_name] = $r->sob_text_format; } while (list($key, $value) = each($_POST)) { if (in_array($key, $recordFields)) { $formFields[] = $key; $formValues[] = reformatField($value, $fieldProperties[$key]); } } reset($_POST); // if the following fields are in the table they will be updated if (in_array('sys_added', $recordFields) and $recordID == '-1') { $formFields[] = 'sys_added'; $formValues[] = "'" . date('Y-m-d H:i:s') . "'"; } if (in_array('sys_changed', $recordFields)) { $formFields[] = 'sys_changed'; $formValues[] = "'" . date('Y-m-d H:i:s') . "'"; } if (in_array('sys_user_id', $recordFields)) { $formFields[] = 'sys_user_id'; $formValues[] = "'" . $_SESSION['zzsys_user_id'] . "'";
function updateSubform($P, $SF, $recordID) { $bs = '\\'; $dq = '"'; $insertFields = ''; $insertValues = ''; // get subform's insert sql statement // $t = nuRunQuery("SELECT sob_subform_insert_sql, sob_subform_table, sob_subform_primary_key FROM zzsys_object WHERE zzsys_object_id = '$SF->ID'"); $t = nuRunQuery("SELECT sob_subform_table, sob_subform_primary_key FROM zzsys_object WHERE zzsys_object_id = '{$SF->ID}'"); $subform = db_fetch_object($t); // get formatting properties for this form's fields $t = nuRunQuery("SELECT sob_all_name, sob_text_format FROM zzsys_object WHERE sob_all_type = 'text' AND sob_zzsys_form_id = '{$SF->ID}'"); while ($r = db_fetch_object($t)) { $fieldProperties[$r->sob_all_name] = $r->sob_text_format; } for ($i = 0; $i < $SF->Rows; $i++) { $PRE = $SF->Name . right('000' . $i, 4); $checkBox = 'row' . $PRE; $primaryKey = $P[$PRE . $SF->PrimaryKey]; $foreignKey = $recordID; if ($P[$checkBox] == 'on' and $primaryKey != '') { nuRunQuery("DELETE FROM {$subform->sob_subform_table} WHERE {$subform->sob_subform_primary_key} = '{$primaryKey}'"); } if ($P[$checkBox] != 'on') { // delete box not ticked for ($I = 0; $I < count($SF->ColumnName); $I++) { if ($P['____' . $PRE . $SF->ColumnName[$I]] == '' or $primaryKey == '') { //---has been edited or is a new record $fieldTitle = $SF->ColumnName[$I]; $fieldValue = $P["{$PRE}{$fieldTitle}"]; $fieldValue = "'" . str_replace("'", "\\'", str_replace($bs, $bs . $bs, reformatField($fieldValue, $fieldProperties[$fieldTitle], false))) . "'"; if ($primaryKey == '') { if ($insertFields == '') { $newID = uniqid('1'); $insertFields = "{$SF->PrimaryKey}, {$SF->ForeignKey}, {$fieldTitle}"; $insertValues = "{$dq}{$newID}{$dq}, {$dq}{$foreignKey}{$dq}, {$fieldValue}"; } else { $insertFields = "{$insertFields}, {$fieldTitle}"; $insertValues = "{$insertValues}, {$fieldValue}"; } } else { if ($insertFields == '') { $insertFields = "{$SF->ForeignKey} = {$dq}{$foreignKey}{$dq}, {$fieldTitle} = {$fieldValue}"; } else { $insertFields = "{$insertFields}, {$fieldTitle} = {$fieldValue}"; } } } } if ($insertFields != '') { //-- only update if something was changed or added if ($primaryKey == '') { $s = str_replace('#fields#', $insertFields, "INSERT INTO {$subform->sob_subform_table} (#fields#) VALUES (#values#)"); $runSQL = str_replace('#values#', $insertValues, $s); } else { $s = "UPDATE {$subform->sob_subform_table} SET #fields# WHERE {$subform->sob_subform_primary_key} = '{$primaryKey}'"; $runSQL = str_replace('#fields#', $insertFields, $s); } nuRunQuery($runSQL); $insertFields = ''; $insertValues = ''; } } } }