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'] . "'";
Пример #3
0
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 = '';
            }
        }
    }
}