| | |
| | | * Tabellendefinition |
| | | * |
| | | * Datentypen: |
| | | * - INTEGER (Wandelt Ausdrücke in Int um) |
| | | * - INTEGER (Wandelt Ausdr�cke in Int um) |
| | | * - DOUBLE |
| | | * - CURRENCY (Formatiert Zahlen nach Währungsnotation) |
| | | * - CURRENCY (Formatiert Zahlen nach W�hrungsnotation) |
| | | * - VARCHAR (kein weiterer Format Check) |
| | | * - DATE (Datumsformat, Timestamp Umwandlung) |
| | | * |
| | |
| | | * - Wert oder Array |
| | | * |
| | | * SEPARATOR |
| | | * - Trennzeichen für multiple Felder |
| | | * - Trennzeichen f�r multiple Felder |
| | | * |
| | | * Hinweis: |
| | | * Das ID-Feld ist nicht bei den Table Values einzufügen. |
| | | * Das ID-Feld ist nicht bei den Table Values einzuf�gen. |
| | | * |
| | | * @package form |
| | | * @author Till Brehm |
| | |
| | | var $table_index; |
| | | |
| | | /** |
| | | * enthält die Fehlermeldung bei Überprüfung |
| | | * enth�lt die Fehlermeldung bei �berpr�fung |
| | | * der Variablen mit Regex |
| | | * @var errorMessage |
| | | */ |
| | |
| | | |
| | | |
| | | /** |
| | | * Konvertiert die Daten des übergebenen assoziativen |
| | | * Konvertiert die Daten des �bergebenen assoziativen |
| | | * Arrays in "menschenlesbare" Form. |
| | | * Datentyp Konvertierung, z.B. für Ausgabe in Listen. |
| | | * Datentyp Konvertierung, z.B. f�r Ausgabe in Listen. |
| | | * |
| | | * @param record |
| | | * @return record |
| | |
| | | |
| | | |
| | | /** |
| | | * Record für Ausgabe in Formularen vorbereiten. |
| | | * Record f�r Ausgabe in Formularen vorbereiten. |
| | | * |
| | | * @param record = Datensatz als Array |
| | | * @param action = NEW oder EDIT |
| | |
| | | foreach($vals as $tvl) { |
| | | if(trim($tvl) == trim($k)) $checked = ' CHECKED'; |
| | | } |
| | | |
| | | $out .= "<input name=\"".$key."[]\" type=\"checkbox\" value=\"$k\" $checked>$v <br />\r\n"; |
| | | $out .= "<span class=\"wf_oneChoice\">\r\n |
| | | <input type=\"checkbox\" value=\"$k\" id=\"".$key."[]\" name=\"".$key."[]\" $checked>\r\n |
| | | <label for=\"".$key."[]\" id=\"".$key."[]-L\" class=\"wf_postField\">$v</label>\r\n |
| | | </span><br />\r\n"; |
| | | } |
| | | } |
| | | $new_record[$key] = $out; |
| | |
| | | $out = ''; |
| | | foreach($field['value'] as $k => $v) { |
| | | $checked = ($k == $val)?' CHECKED':''; |
| | | $out .= "<input name='".$key."[]' type='radio' value='$k'$checked> $v<br>\r\n"; |
| | | $out .= "<span class=\"wf_oneChoice\">\r\n |
| | | <input type=\"radio\" value=\"$k\" id=\"".$key."[]\" name=\"".$key."[]\" $checked>\r\n |
| | | <label for=\"".$key."[]\" id=\"".$key."[]-L\" class=\"wf_postField\">$v</label>\r\n |
| | | </span><br />\r\n"; |
| | | } |
| | | } |
| | | $new_record[$key] = $out; |
| | |
| | | |
| | | case 'CHECKBOX': |
| | | // $checked = (empty($field["default"]))?'':' CHECKED'; |
| | | $checked = ($field["default"] == $field['value'][1])?' CHECKED':''; |
| | | $checked = ($field["default"] == $field['value'][1])?' CHECKED':''; |
| | | $new_record[$key] = "<input name=\"".$key."\" type=\"checkbox\" value=\"".$field['value'][1]."\" $checked>\r\n"; |
| | | break; |
| | | |
| | |
| | | foreach($vals as $tvl) { |
| | | if(trim($tvl) == trim($k)) $checked = ' CHECKED'; |
| | | } |
| | | |
| | | $out .= "<input name=\"".$key."[]\" type=\"checkbox\" value=\"$k\" $checked> $v<br />\r\n"; |
| | | $out .= "<span class=\"wf_oneChoice\">\r\n |
| | | <input type=\"checkbox\" value=\"$k\" id=\"".$key."[]\" name=\"".$key."[]\" $checked>\r\n |
| | | <label for=\"".$key."[]\" id=\"".$key."[]-L\" class=\"wf_postField\">$v</label>\r\n |
| | | </span><br />\r\n"; |
| | | } |
| | | } |
| | | $new_record[$key] = $out; |
| | |
| | | $out = ''; |
| | | foreach($field['value'] as $k => $v) { |
| | | $checked = ($k == $field["default"])?' CHECKED':''; |
| | | $out .= "<input name='".$key."[]' type='radio' value='$k'$checked> $v<br>\r\n"; |
| | | $out .= "<span class=\"wf_oneChoice\">\r\n |
| | | <input type=\"radio\" value=\"$k\" id=\"".$key."[]\" name=\"".$key."[]\" $checked>\r\n |
| | | <label for=\"".$key."[]\" id=\"".$key."[]-L\" class=\"wf_postField\">$v</label>\r\n |
| | | </span><br />\r\n"; |
| | | } |
| | | } |
| | | $new_record[$key] = $out; |
| | |
| | | } |
| | | |
| | | /** |
| | | * Record in "maschinen lesbares" Format überführen |
| | | * und Werte gegen reguläre Ausdrücke prüfen. |
| | | * Record in "maschinen lesbares" Format �berf�hren |
| | | * und Werte gegen regul�re Ausdr�cke pr�fen. |
| | | * |
| | | * @param record = Datensatz als Array |
| | | * @return record |
| | | */ |
| | | function encode($record,$tab) { |
| | | |
| | | global $app; |
| | | |
| | | if(!is_array($this->formDef['tabs'][$tab])) $app->error("Tab ist leer oder existiert nicht (TAB: $tab)."); |
| | | //$this->errorMessage = ''; |
| | | |
| | |
| | | switch ($field['datatype']) { |
| | | case 'VARCHAR': |
| | | if(!@is_array($record[$key])) { |
| | | $new_record[$key] = (isset($record[$key]))?addslashes($record[$key]):''; |
| | | $new_record[$key] = (isset($record[$key]))?$app->db->quote($record[$key]):''; |
| | | } else { |
| | | $new_record[$key] = implode($field['separator'],$record[$key]); |
| | | } |
| | | break; |
| | | case 'TEXT': |
| | | if(!is_array($record[$key])) { |
| | | $new_record[$key] = addslashes($record[$key]); |
| | | $new_record[$key] = $app->db->quote($record[$key]); |
| | | } else { |
| | | $new_record[$key] = implode($field['separator'],$record[$key]); |
| | | } |
| | |
| | | } |
| | | break; |
| | | case 'INTEGER': |
| | | $new_record[$key] = (isset($record[$key]))?intval($record[$key]):0; |
| | | $new_record[$key] = (isset($record[$key]))?$record[$key]:0; |
| | | //if($new_record[$key] != $record[$key]) $new_record[$key] = $field['default']; |
| | | //if($key == 'refresh') die($record[$key]); |
| | | break; |
| | | case 'DOUBLE': |
| | | $new_record[$key] = addslashes($record[$key]); |
| | | $new_record[$key] = $app->db->quote($record[$key]); |
| | | break; |
| | | case 'CURRENCY': |
| | | $new_record[$key] = str_replace(",",".",$record[$key]); |
| | |
| | | } |
| | | |
| | | /** |
| | | * SQL Statement für Record erzeugen. |
| | | * SQL Statement f�r Record erzeugen. |
| | | * |
| | | * @param record = Datensatz als Array |
| | | * @param action = INSERT oder UPDATE |
| | |
| | | $salt.="$"; |
| | | // $salt = substr(md5(time()),0,2); |
| | | $record[$key] = crypt($record[$key],$salt); |
| | | $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; |
| | | } elseif ($field['encryption'] == 'MYSQL') { |
| | | $sql_insert_val .= "PASSWORD('".$app->db->quote($record[$key])."'), "; |
| | | } elseif ($field['encryption'] == 'CLEARTEXT') { |
| | | $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; |
| | | } else { |
| | | $record[$key] = md5($record[$key]); |
| | | $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; |
| | | } |
| | | $sql_insert_val .= "'".addslashes($record[$key])."', "; |
| | | |
| | | } elseif ($field['formtype'] == 'CHECKBOX') { |
| | | $sql_insert_key .= "`$key`, "; |
| | | if($record[$key] == '') { |
| | |
| | | $salt.="$"; |
| | | // $salt = substr(md5(time()),0,2); |
| | | $record[$key] = crypt($record[$key],$salt); |
| | | $sql_update .= "`$key` = '".$app->db->quote($record[$key])."', "; |
| | | } elseif (isset($field['encryption']) && $field['encryption'] == 'MYSQL') { |
| | | $sql_update .= "`$key` = PASSWORD('".$app->db->quote($record[$key])."'), "; |
| | | } elseif (isset($field['encryption']) && $field['encryption'] == 'CLEARTEXT') { |
| | | $sql_update .= "`$key` = '".$app->db->quote($record[$key])."', "; |
| | | } else { |
| | | $record[$key] = md5($record[$key]); |
| | | $sql_update .= "`$key` = '".$app->db->quote($record[$key])."', "; |
| | | } |
| | | $sql_update .= "`$key` = '".addslashes($record[$key])."', "; |
| | | |
| | | } elseif ($field['formtype'] == 'CHECKBOX') { |
| | | if($record[$key] == '') { |
| | | // if a checkbox is not set, we set it to the unchecked value |
| | |
| | | } |
| | | |
| | | |
| | | // Füge Backticks nur bei unvollständigen Tabellennamen ein |
| | | // F�ge Backticks nur bei unvollst�ndigen Tabellennamen ein |
| | | if(stristr($this->formDef['db_table'],'.')) { |
| | | $escape = ''; |
| | | } else { |
| | |
| | | $sql_insert_val = substr($sql_insert_val,0,-2); |
| | | $sql = "INSERT INTO ".$escape.$this->formDef['db_table'].$escape." ($sql_insert_key) VALUES ($sql_insert_val)"; |
| | | } else { |
| | | if($this->formDef['auth'] == 'yes') { |
| | | if($primary_id != 0) { |
| | | $sql_update = substr($sql_update,0,-2); |
| | | $sql = "UPDATE ".$escape.$this->formDef['db_table'].$escape." SET ".$sql_update." WHERE ".$this->getAuthSQL('u')." AND ".$this->formDef['db_table_idx']." = ".$primary_id; |
| | |
| | | } else { |
| | | $app->error("Primary ID fehlt!"); |
| | | } |
| | | } else { |
| | | if($primary_id != 0) { |
| | | $sql_update = substr($sql_update,0,-2); |
| | | $sql = "UPDATE ".$escape.$this->formDef['db_table'].$escape." SET ".$sql_update." WHERE ".$this->formDef['db_table_idx']." = ".$primary_id; |
| | | if($sql_ext_where != '') $sql .= " and ".$sql_ext_where; |
| | | } else { |
| | | $app->error("Primary ID fehlt!"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return $sql; |
| | |
| | | // Wenn Modul gesetzt, dann setzte template pfad relativ zu modul. |
| | | if($this->module != '') $tab["template"] = "../".$this->module."/".$tab["template"]; |
| | | |
| | | // überprüfe, ob das Template existiert, wenn nicht |
| | | // �berpr�fe, ob das Template existiert, wenn nicht |
| | | // dann generiere das Template |
| | | |
| | | // Translate the title of the tab |
| | |
| | | $tab["active"] = 0; |
| | | } |
| | | |
| | | // Die Datenfelder werden für die Tabs nicht benötigt |
| | | // Die Datenfelder werden f�r die Tabs nicht ben�tigt |
| | | unset($tab["fields"]); |
| | | unset($tab["plugins"]); |
| | | |
| | |
| | | $app->tpl->setVar('form_active_tab',$active_tab); |
| | | |
| | | // Set form title |
| | | $form_hint = '<b>'.$this->lng($this->formDef["title"]).'</b>'; |
| | | if($this->formDef["description"] != '') $form_hint .= '<br><br>'.$this->lng($this->formDef["description"]); |
| | | $form_hint = $this->lng($this->formDef["title"]); |
| | | if($this->formDef["description"] != '') $form_hint .= '<div class="pageForm_description">'.$this->lng($this->formDef["description"]).'</div>'; |
| | | $app->tpl->setVar('form_hint',$form_hint); |
| | | |
| | | // Set Wordbook for this form |
| | |
| | | function datalogSave($action,$primary_id, $record_old, $record_new) { |
| | | global $app,$conf; |
| | | |
| | | // Füge Backticks nur bei unvollständigen Tabellennamen ein |
| | | // F�ge Backticks nur bei unvollst�ndigen Tabellennamen ein |
| | | if(stristr($this->formDef['db_table'],'.')) { |
| | | $escape = ''; |
| | | } else { |
| | |
| | | } |
| | | |
| | | /* |
| | | Diese funktion überprüft, ob ein User die Berechtigung $perm für den Datensatz mit der ID $record_id |
| | | Diese funktion �berpr�ft, ob ein User die Berechtigung $perm f�r den Datensatz mit der ID $record_id |
| | | hat. It record_id = 0, dann wird gegen die user Defaults des Formulares getestet. |
| | | */ |
| | | function checkPerm($record_id,$perm) { |
| | | global $app; |
| | | |
| | | if($record_id > 0) { |
| | | // Füge Backticks nur bei unvollständigen Tabellennamen ein |
| | | // F�ge Backticks nur bei unvollst�ndigen Tabellennamen ein |
| | | if(stristr($this->formDef['db_table'],'.')) { |
| | | $escape = ''; |
| | | } else { |
| | |
| | | if($this->errorMessage == '') { |
| | | // wenn kein Fehler vorliegt |
| | | if(isset($_REQUEST["next_tab"]) && $_REQUEST["next_tab"] != '') { |
| | | // wenn nächster Tab bekannt |
| | | // wenn n�chster Tab bekannt |
| | | $active_tab = $_REQUEST["next_tab"]; |
| | | } else { |
| | | // ansonsten ersten tab nehmen |
| | |
| | | return $_SESSION["s"]["form"]["tab"]; |
| | | } |
| | | |
| | | function isReadonlyTab($tab) { |
| | | if(isset($this->formDef['tabs'][$tab]['readonly']) && $this->formDef['tabs'][$tab]['readonly'] == true) { |
| | | return true; |
| | | } else { |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | // translation function for forms, tries the form wordbook first and if this fails, it tries the global wordbook |
| | | function lng($msg) { |