Esempio n. 1
0
 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);
 }