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