From 7fe908c50c8dbc5cc05f571dbe11d66141caacd4 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Thu, 14 Nov 2013 09:01:22 -0500 Subject: [PATCH] Cleaning up code to match coding guidelines --- interface/lib/classes/form.inc.php | 551 +++++++++++++++++++++++++++++------------------------- 1 files changed, 295 insertions(+), 256 deletions(-) diff --git a/interface/lib/classes/form.inc.php b/interface/lib/classes/form.inc.php index 898cbe6..34c0b62 100644 --- a/interface/lib/classes/form.inc.php +++ b/interface/lib/classes/form.inc.php @@ -29,165 +29,192 @@ */ /** -* Formularbehandlung -* -* Funktionen zur Umwandlung von Formulardaten -* sowie zum vorbereiten von HTML und SQL -* Ausgaben -* -* Tabellendefinition -* -* Datentypen: -* - INTEGER (Wandelt Ausdrücke in Int um) -* - DOUBLE -* - CURRENCY (Formatiert Zahlen nach Währungsnotation) -* - VARCHAR (kein weiterer Format Check) -* - DATE (Datumsformat, Timestamp Umwandlung) -* -* Formtype: -* - TEXT (normales Textfeld) -* - PASSWORD (Feldinhalt wird nicht angezeigt) -* - SELECT (Gibt Werte als option Feld aus) -* - MULTIPLE (Select-Feld mit nehreren Werten) -* -* VALUE: -* - Wert oder Array -* -* SEPARATOR -* - Trennzeichen für multiple Felder -* -* Hinweis: -* Das ID-Feld ist nicht bei den Table Values einzufügen. -* -* @package form -* @author Till Brehm -* @version 1.1 -*/ + * Formularbehandlung + * + * Funktionen zur Umwandlung von Formulardaten + * sowie zum vorbereiten von HTML und SQL + * Ausgaben + * + * Tabellendefinition + * + * Datentypen: + * - INTEGER (Wandelt Ausdrücke in Int um) + * - DOUBLE + * - CURRENCY (Formatiert Zahlen nach Währungsnotation) + * - VARCHAR (kein weiterer Format Check) + * - DATE (Datumsformat, Timestamp Umwandlung) + * + * Formtype: + * - TEXT (normales Textfeld) + * - PASSWORD (Feldinhalt wird nicht angezeigt) + * - SELECT (Gibt Werte als option Feld aus) + * - MULTIPLE (Select-Feld mit nehreren Werten) + * + * VALUE: + * - Wert oder Array + * + * SEPARATOR + * - Trennzeichen für multiple Felder + * + * Hinweis: + * Das ID-Feld ist nicht bei den Table Values einzufügen. + * + * @package form + * @author Till Brehm + * @version 1.1 + */ + class form { - + + + /** - * Definition der Tabelle (array) - * @var tableDef - */ + * Definition der Tabelle (array) + * @var tableDef + */ var $tableDef; - + + + /** - * Private - * @var action - */ + * Private + * @var action + */ var $action; - + + + /** - * Tabellenname (String) - * @var table_name - */ + * Tabellenname (String) + * @var table_name + */ var $table_name; - + + + /** - * Debug Variable - * @var debug - */ + * Debug Variable + * @var debug + */ var $debug = 0; - + + + /** - * name des primary Field der Tabelle (string) - * @var table_index - */ + * name des primary Field der Tabelle (string) + * @var table_index + */ var $table_index; - + + + /** - * enthält die Fehlermeldung bei Überprüfung - * der Variablen mit Regex - * @var errorMessage - */ + * enthält die Fehlermeldung bei Überprüfung + * der Variablen mit Regex + * @var errorMessage + */ var $errorMessage; - + var $dateformat = "d.m.Y"; - var $formDef; - + var $formDef; + + + + + /** - * Laden der Tabellendefinition - * - * @param file: Pfad zur Tabellendefinition - * @return true - */ + * Laden der Tabellendefinition + * + * @param file: Pfad zur Tabellendefinition + * @return true + */ function loadTableDef($file) { - global $app,$conf; - - include_once($file); + global $app, $conf; + + include_once $file; $this->tableDef = $table; $this->table_name = $table_name; $this->table_index = $table_index; return true; } - - function loadFormDef($file) { - global $app,$conf; - - include_once($file); + + function loadFormDef($file) { + global $app, $conf; + + include_once $file; $this->formDef = $form; return true; } - - + + + + + + + + /** - * Konvertiert die Daten des übergebenen assoziativen - * Arrays in "menschenlesbare" Form. - * Datentyp Konvertierung, z.B. für Ausgabe in Listen. - * - * @param record - * @return record - */ + * Konvertiert die Daten des übergebenen assoziativen + * Arrays in "menschenlesbare" Form. + * Datentyp Konvertierung, z.B. für Ausgabe in Listen. + * + * @param record + * @return record + */ function decode($record) { - global $app; + global $app; if(is_array($record)) { foreach($record as $key => $val) { switch ($this->tableDef[$key]['datatype']) { case 'VARCHAR': $new_record[$key] = stripslashes($val); - break; - + break; + case 'DATE': if($val > 0) { - $new_record[$key] = date($this->dateformat,$val); + $new_record[$key] = date($this->dateformat, $val); } - break; - + break; + case 'INTEGER': $new_record[$key] = $app->functions->intval($val); - break; - + break; + case 'DOUBLE': $new_record[$key] = $val; - break; - + break; + case 'CURRENCY': $new_record[$key] = number_format($val, 2, ',', ''); - break; - + break; + default: $new_record[$key] = stripslashes($val); } } - + } - return $new_record; + return $new_record; } - + + + + + /** - * Record für Ausgabe in Formularen vorbereiten. - * - * @param record = Datensatz als Array - * @param action = NEW oder EDIT - * @return record - */ - function getHTML($record,$action = 'NEW') { - + * Record für Ausgabe in Formularen vorbereiten. + * + * @param record = Datensatz als Array + * @param action = NEW oder EDIT + * @return record + */ + function getHTML($record, $action = 'NEW') { + global $app; - + if(!is_array($this->tableDef)) $app->error("Keine Tabellendefinition vorhanden."); - + $new_record = array(); if($action == 'EDIT') { $record = $this->decode($record); @@ -203,32 +230,32 @@ } } $new_record[$key] = $out; - break; + break; case 'MULTIPLE': if(is_array($this->tableDef[$key]['value'])) { - + // aufsplitten ergebnisse - $vals = explode($this->tableDef[$key]['separator'],$val); - + $vals = explode($this->tableDef[$key]['separator'], $val); + // HTML schreiben $out = ''; foreach($this->tableDef[$key]['value'] as $k => $v) { - + $selected = ''; foreach($vals as $tvl) { if(trim($tvl) == trim($k)) $selected = ' SELECTED'; } - + $out .= "<option value='$k'$selected>$v</option>\r\n"; } } $new_record[$key] = $out; - break; - + break; + case 'PASSWORD': $new_record[$key] = ''; - break; - + break; + default: $new_record[$key] = htmlspecialchars($val); } @@ -246,50 +273,54 @@ } } $new_record[$key] = $out; - break; - case 'MULTIPLE': - if(is_array($this->tableDef[$key]['value'])) { - - // aufsplitten ergebnisse - $vals = explode($this->tableDef[$key]['separator'],$val); - - // HTML schreiben - $out = ''; - foreach($this->tableDef[$key]['value'] as $k => $v) { - - $out .= "<option value='$k'>$v</option>\r\n"; - } - } - $new_record[$key] = $out; break; - + case 'MULTIPLE': + if(is_array($this->tableDef[$key]['value'])) { + + // aufsplitten ergebnisse + $vals = explode($this->tableDef[$key]['separator'], $val); + + // HTML schreiben + $out = ''; + foreach($this->tableDef[$key]['value'] as $k => $v) { + + $out .= "<option value='$k'>$v</option>\r\n"; + } + } + $new_record[$key] = $out; + break; + case 'PASSWORD': $new_record[$key] = ''; - break; - + break; + default: $new_record[$key] = htmlspecialchars($this->tableDef[$key]['value']); } } - + } - + if($this->debug == 1) $this->dbg($new_record); - + return $new_record; } - + + + + + /** - * Record in "maschinen lesbares" Format überführen - * und Werte gegen reguläre Ausdrücke prüfen. - * - * @param record = Datensatz als Array - * @return record - */ + * 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) { global $app; $this->errorMessage = ''; - + if(is_array($record)) { foreach($record as $key => $val) { switch ($this->tableDef[$key]['datatype']) { @@ -297,26 +328,26 @@ if(!is_array($val)) { $new_record[$key] = $app->db->quote($val); } else { - $new_record[$key] = implode($this->tableDef[$key]['separator'],$val); + $new_record[$key] = implode($this->tableDef[$key]['separator'], $val); } - break; + break; case 'DATE': if($val > 0) { - list($tag,$monat,$jahr) = explode('.',$val); - $new_record[$key] = mktime(0,0,0,$monat,$tag,$jahr); + list($tag, $monat, $jahr) = explode('.', $val); + $new_record[$key] = mktime(0, 0, 0, $monat, $tag, $jahr); } - break; + break; case 'INTEGER': $new_record[$key] = $app->functions->intval($val); - break; + break; case 'DOUBLE': $new_record[$key] = $app->db->quote($val); - break; + break; case 'CURRENCY': - $new_record[$key] = str_replace(",",".",$val); - break; + $new_record[$key] = str_replace(",", ".", $val); + break; } - + if($this->tableDef[$key]['regex'] != '') { // Enable that "." matches also newlines $this->tableDef[$key]['regex'] .= 's'; @@ -325,152 +356,160 @@ } } } - + } return $new_record; } - + + + + + /** - * SQL Statement für Record erzeugen. - * - * @param record = Datensatz als Array - * @param action = INSERT oder UPDATE - * @param primary_id - * @return record - */ + * SQL Statement für Record erzeugen. + * + * @param record = Datensatz als Array + * @param action = INSERT oder UPDATE + * @param primary_id + * @return record + */ function getSQL($record, $action = 'INSERT', $primary_id = 0, $sql_ext_where = '') { - + global $app; - + $record = $this->encode($record); $sql_insert_key = ''; $sql_insert_val = ''; $sql_update = ''; - + if(!is_array($this->tableDef)) $app->error("Keine Tabellendefinition vorhanden."); - + // gehe durch alle Felder des Records if(is_array($record)) { - foreach($record as $key => $val) { - // Wenn es kein leeres Passwortfeld ist - if (!($this->tableDef[$key]['formtype'] == 'PASSWORD' and $val == '')) { - // gehe durch alle Felder der TableDef - foreach($this->tableDef as $tk => $tv) { - // Wenn Feld in TableDef enthalten ist - if($tk == $key) { - // Erzeuge Insert oder Update Quelltext - if($action == "INSERT") { - - if($this->tableDef[$key]['formtype'] == 'PASSWORD') { - $sql_insert_key .= "`$key`, "; - $sql_insert_val .= "md5('$val'), "; - //} elseif($this->tableDef[$key]['formtype'] == 'MULTIPLE') { - // $val = implode($this->tableDef[$key]['separator'],$val); - // $sql_insert_key .= "`$key`, "; - // $sql_insert_val .= "'$val', "; + foreach($record as $key => $val) { + // Wenn es kein leeres Passwortfeld ist + if (!($this->tableDef[$key]['formtype'] == 'PASSWORD' and $val == '')) { + // gehe durch alle Felder der TableDef + foreach($this->tableDef as $tk => $tv) { + // Wenn Feld in TableDef enthalten ist + if($tk == $key) { + // Erzeuge Insert oder Update Quelltext + if($action == "INSERT") { + + if($this->tableDef[$key]['formtype'] == 'PASSWORD') { + $sql_insert_key .= "`$key`, "; + $sql_insert_val .= "md5('$val'), "; + //} elseif($this->tableDef[$key]['formtype'] == 'MULTIPLE') { + // $val = implode($this->tableDef[$key]['separator'],$val); + // $sql_insert_key .= "`$key`, "; + // $sql_insert_val .= "'$val', "; + } else { + $sql_insert_key .= "`$key`, "; + $sql_insert_val .= "'$val', "; + } + } else { - $sql_insert_key .= "`$key`, "; - $sql_insert_val .= "'$val', "; + + if($this->tableDef[$key]['formtype'] == 'PASSWORD') { + $sql_update .= "`$key` = md5('$val'), "; + //} elseif($this->tableDef[$key]['formtype'] == 'MULTIPLE') { + // $val = implode($this->tableDef[$key]['separator'],$val); + // $sql_update .= "`$key` = '$val', "; + } else { + $sql_update .= "`$key` = '$val', "; + } + } - - } else { - - if($this->tableDef[$key]['formtype'] == 'PASSWORD') { - $sql_update .= "`$key` = md5('$val'), "; - //} elseif($this->tableDef[$key]['formtype'] == 'MULTIPLE') { - // $val = implode($this->tableDef[$key]['separator'],$val); - // $sql_update .= "`$key` = '$val', "; - } else { - $sql_update .= "`$key` = '$val', "; - } - } } } } } - } - + // Füge Backticks nur bei unvollständigen Tabellennamen ein - if(stristr($this->table_name,'.')) { + if(stristr($this->table_name, '.')) { $escape = ''; } else { $escape = '`'; } - - + + if($action == "INSERT") { - $sql_insert_key = substr($sql_insert_key,0,-2); - $sql_insert_val = substr($sql_insert_val,0,-2); + $sql_insert_key = substr($sql_insert_key, 0, -2); + $sql_insert_val = substr($sql_insert_val, 0, -2); $sql = "INSERT INTO ".$escape.$this->table_name.$escape." ($sql_insert_key) VALUES ($sql_insert_val)"; } else { if($primary_id != 0) { - $sql_update = substr($sql_update,0,-2); + $sql_update = substr($sql_update, 0, -2); $sql = "UPDATE ".$escape.$this->table_name.$escape." SET ".$sql_update." WHERE ".$this->table_index ." = ".$primary_id; if($sql_ext_where != '') $sql .= " and ".$sql_ext_where; } else { $app->error("Primary ID fehlt!"); } } - + return $sql; } - + + + + + /** - * Debugging arrays. - * - * @param array_data - */ + * Debugging arrays. + * + * @param array_data + */ function dbg($array_data) { - + echo "<pre>"; print_r($array_data); echo "</pre>"; - + } - - - function showForm() { - global $app,$conf; - - if(!is_array($this->formDef)) die("Form Definition wurde nicht geladen."); - - if($this->errorMessage == '') { - // wenn kein Fehler vorliegt + + + function showForm() { + global $app, $conf; + + if(!is_array($this->formDef)) die("Form Definition wurde nicht geladen."); + + if($this->errorMessage == '') { + // wenn kein Fehler vorliegt if($_REQUEST["next_tab"] != '') { - // wenn nächster Tab bekannt - $active_tab = $_REQUEST["next_tab"]; - } else { - // ansonsten ersten tab nehmen - $active_tab = $this->formDef["tabs"][0]["name"]; - } + // wenn nächster Tab bekannt + $active_tab = $_REQUEST["next_tab"]; + } else { + // ansonsten ersten tab nehmen + $active_tab = $this->formDef["tabs"][0]["name"]; + } } else { - // bei Fehlern den gleichen Tab nochmal anzeigen - $active_tab = $_SESSION["s"]["form"]["tab"]; + // bei Fehlern den gleichen Tab nochmal anzeigen + $active_tab = $_SESSION["s"]["form"]["tab"]; } - - // definiere Tabs - foreach( $this->formDef["tabs"] as $tab) { - - if($tab["name"] == $active_tab) { - $app->tpl->setInclude('content_tpl',$tab["template"]); - $tab["active"] = 1; - $_SESSION["s"]["form"]["tab"] = $tab["name"]; - } else { - $tab["active"] = 0; - } - - $frmTab[] = $tab; - } - - // setze Loop - $app->tpl->setLoop("formTab", $frmTab); + + // definiere Tabs + foreach( $this->formDef["tabs"] as $tab) { + + if($tab["name"] == $active_tab) { + $app->tpl->setInclude('content_tpl', $tab["template"]); + $tab["active"] = 1; + $_SESSION["s"]["form"]["tab"] = $tab["name"]; + } else { + $tab["active"] = 0; + } + + $frmTab[] = $tab; + } + + // setze Loop + $app->tpl->setLoop("formTab", $frmTab); // Formular action setzen - $app->tpl->setVar('form_action',$this->formDef["action"]); - } - - + $app->tpl->setVar('form_action', $this->formDef["action"]); + } + + } ?> -- Gitblit v1.9.1