static function create_edit($tfolder, $tview, $mode) { $errors = array(); $defaults = array(); $form_ids = array(); $saved_ids = array(); $sgsml = new sgsml($tfolder, $tview, array_keys($_REQUEST["form_fields"])); $file_fields = $sgsml->get_fields_by_type("files"); foreach ($_REQUEST["form_fields"] as $id) { $prefix = "form_" . md5($id); $result = array(); foreach ($file_fields as $field_name) { if ($error = self::_processfiles($sgsml, $field_name, $id)) { $result[$field_name] = $error; } } if (!sys_validate_token()) { $result['token'] = array(array("{t}validation failed{/t}", "{t}Invalid security token{/t} {t}Please activate cookies.{/t}")); } $data = array(); foreach ($sgsml->current_fields as $field_name => $field) { $prefix_name = $prefix . $field_name; if (isset($_REQUEST[$prefix_name])) { $data[$field_name] = $_REQUEST[$prefix_name]; } } if (!$result) { if ($mode == "create") { $result = $sgsml->insert($data); } else { $result = $sgsml->update($data, $id); } } foreach ($sgsml->current_fields as $field_name => $field) { if (!isset($data[$field_name])) { continue; } $defaults[$prefix][$field_name] = is_array($data[$field_name]) ? implode("|", $data[$field_name]) : $data[$field_name]; } if (!is_array($result)) { $form_ids[] = $id; $saved_ids[] = $result; if ($mode == "create") { unset($defaults[$prefix]); } } else { $errors[$prefix] = $result; } } return array($errors, $defaults, $form_ids, $saved_ids); }