From 0234fe3f43da65ba07043ee8637c4b0b1e99e737 Mon Sep 17 00:00:00 2001 From: michael Date: Fri, 25 Jul 2003 14:10:55 +0000 Subject: [PATCH] (#2674) decoupled pattern POST array handling --- presentation/lookAndFeel/knowledgeTree/store.inc | 194 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ presentation/lookAndFeel/knowledgeTree/store.php | 208 +++++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2 files changed, 219 insertions(+), 183 deletions(-) create mode 100644 presentation/lookAndFeel/knowledgeTree/store.inc diff --git a/presentation/lookAndFeel/knowledgeTree/store.inc b/presentation/lookAndFeel/knowledgeTree/store.inc new file mode 100644 index 0000000..289b821 --- /dev/null +++ b/presentation/lookAndFeel/knowledgeTree/store.inc @@ -0,0 +1,194 @@ +log->info("primaryKey=$iPrimaryKey; tableName=$sTableName"); + + $i++; + $iColumnCount = 0; + + //get all the values for the table + while ((strncasecmp("unique_end", $sRowStart, 10) != 0) && ($i <= count($aKeys))) { + $aColumns[$iColumnCount] = $_POST[$aKeys[$i]]; + $aTypes[$iColumnCount]= $_POST[$aKeys[++$i]]; + + switch ($aTypes[$iColumnCount]) { + case 0: + //id's + $aValues[$iColumnCount] = $_POST[$aKeys[++$i]]; + break; + case 1: + //normal text + $aValues[$iColumnCount] = $_POST[$aKeys[++$i]]; + break; + case 2: + //uncheck checkboxes don't generate any name/value pairs + //so if the next key doesn't contain the word "value" and it's type + //is checkbox, then we have an unchecked check box + if (strpos($aKeys[$i + 1], "value") === false) { + $aValues[$iColumnCount] = false; + } else { + $i++; + $aValues[$iColumnCount] = true; + } + //check box + break; + case 3: + //drop down + case 4: + // user supplied values + $aValues[$iColumnCount] = $_POST[$aKeys[++$i]]; + break; + } + + //$aValues[$iColumnCount] = $_POST[$aKeys[$i]]; + $sRowStart = $aKeys[++$i]; + $iColumnCount++; + } + $default->log->info("columns: " . arrayToString($aColumns)); + if ($iPrimaryKey < 0) { + //perform an insert + $sQuery = "INSERT INTO $sTableName ("; + for ($j = 0; $j < count($aColumns) - 1; $j++) { + $sQuery .= $aColumns[$j] . ", "; + } + $sQuery .= $aColumns[count($aColumns) -1] . ") VALUES ("; + + for ($j = 0; $j < count($aColumns) - 1; $j++) { + switch ($aTypes[$j]) { + case 0 : + $sQuery .= $aValues[$j] . ", "; + break; + case 1: + //text + $sQuery .= "'" . addslashes($aValues[$j]) . "', "; + break; + case 2: + //boolean + $sQuery .= $aValues[$j] . ", "; + break; + case 3: + //drop down list + $sQuery .= $aValues[$j] . ", "; + break; + case 4: + // user supplied values + $default->log->info("supplied values: aColumns[j]=" . $aColumns[$j] . "suppliedValues=" . $aSuppliedValues[$aColumns[$j]]); + $sQuery .= $aSuppliedValues[$aColumns[$j]] . ", "; + break; + default: + break; + } + } + switch ($aTypes[count($aColumns) - 1]) { + case 0: + //id + $sQuery .= $aValues[count($aColumns) - 1] . ") "; + break; + case 1: + //text + $sQuery .= "'" . addslashes($aValues[count($aColumns) - 1]) . "') "; + break; + case 2: + //boolean + $sQuery .= ($aValues[count($aColumns) - 1] ? 1 : 0) . ") "; + break; + case 3: + //drop down list + $sQuery .= $aValues[count($aColumns) - 1] . ") "; + break; + case 4: + // user supplied values + $default->log->info("supplied values: suppliedValues=" . $aSuppliedValues[$aColumns[count($aColumns) - 1]]); + $sQuery .= $aSuppliedValues[$aColumns[count($aColumns) - 1]] . ", "; + break; + default: + break; + } + // add query to array + $aQuery[] = $sQuery; + } else { + //perform an update + $sQuery = "UPDATE $sTableName SET "; + for ($j = 0; $j < count($aColumns) -1; $j++) { + $sQuery .= $aColumns[$j] . " = "; + switch ($aTypes[$j]) { + case 0: + //id + $sQuery .= $aValues[$j] . ", "; + break; + case 1: + $sQuery .= "'" . addslashes($aValues[$j]) . "', "; + break; + case 2: + $sQuery .= ($aValues[$j] ? 1 : 0) . ", "; + break; + case 3: + $sQuery .= $aValues[$j] . ", "; + break; + default: + break; + } + + } + $sQuery .= $aColumns[count($aTypes) -1] . " = "; + switch ($aTypes[count($aTypes) -1]) { + case 0: + //id + $sQuery .= $aValues[count($aTypes) -1] . " "; + break; + case 1: + $sQuery .= "'" . addslashes($aValues[count($aTypes) -1]) . "' "; + break; + case 2: + $sQuery .= ($aValues[count($aTypes) -1] ? 1 : 0) . " "; + break; + case 3: + $sQuery .= $aValues[count($aTypes) -1] . " "; + break; + default: + break; + } + $sQuery .= "WHERE id = $iPrimaryKey"; + // add query to array + $aQuery[] = $sQuery; + } + } + } + return $aQuery; +} +?> \ No newline at end of file diff --git a/presentation/lookAndFeel/knowledgeTree/store.php b/presentation/lookAndFeel/knowledgeTree/store.php index babaf8a..962d998 100644 --- a/presentation/lookAndFeel/knowledgeTree/store.php +++ b/presentation/lookAndFeel/knowledgeTree/store.php @@ -1,193 +1,35 @@ fileSystemRoot/lib/documentmanagement/Document.inc"); require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc"); +require_once("store.inc"); -$aKeys = array_keys($_POST); -$iPrimaryKey; -for ($i = 0; $i < count($aKeys); $i++) { - $sRowStart = $aKeys[$i]; - $pos = strncasecmp("unique_start", $sRowStart, 12); +if (count($_POST) > 0) { + $aKeys = array_keys($_POST); + $aQueries = constructQuery($aKeys); - if ($pos == 0) { - $aColumns; - $aValues; - $aTypes; - settype($aColumns, "array"); - settype($aValues, "array"); - settype($aTypes, "array"); - - $i++; - $iPrimaryKey = $_POST[$aKeys[$i]]; - - $i++; - $sTableName = $_POST[$aKeys[$i]]; - - - $i++; - $iColumnCount = 0; - - //get all the values for the table - while ((strncasecmp("unique_end", $sRowStart, 10) != 0) && ($i <= count($aKeys))) { - $aColumns[$iColumnCount] = $_POST[$aKeys[$i]]; - $i++; - $aTypes[$iColumnCount]= $_POST[$aKeys[$i]]; - - - switch ($aTypes[$iColumnCount]) { - case 0: - //id's - $i++; - $aValues[$iColumnCount] = $_POST[$aKeys[$i]]; - break; - case 1: - //normal text - $i++; - $aValues[$iColumnCount] = $_POST[$aKeys[$i]]; - break; - case 2: - //uncheck checkboxes don't generate any name/value pairs - //so if the next key doesn't contain the word "value" and it's type - //is checkbox, then we have an unchecked check box - if (strpos($aKeys[$i + 1], "value") === false) { - $aValues[$iColumnCount] = false; - } else { - $i++; - $aValues[$iColumnCount] = true; - } - //check box - break; - case 3: - //drop down - $i++; - $aValues[$iColumnCount] = $_POST[$aKeys[$i]]; - break; - } - - //$aValues[$iColumnCount] = $_POST[$aKeys[$i]]; - $i++; - - $sRowStart = $aKeys[$i]; - - $iColumnCount++; - } - - if ($iPrimaryKey < 0) { - //perform an insert - $sQuery = "INSERT INTO $sTableName ("; - for ($j = 0; $j < count($aColumns) - 1; $j++) { - $sQuery .= $aColumns[$j] . ", "; - } - $sQuery .= $aColumns[count($aColumns) -1] . ") VALUES ("; - - for ($j = 0; $j < count($aColumns) - 1; $j++) { - switch ($aTypes[$j]) { - case 0 : - $sQuery .= $aValues[$j] . ", "; - break; - case 1: - //text - $sQuery .= "'" . addslashes($aValues[$j]) . "', "; - break; - case 2: - $sQuery .= $aValues[$j] . ", "; - //boolean - break; - case 3: - $sQuery .= $aValues[$j] . ", "; - //drop down list - break; - default: - break; - } - } - switch ($aTypes[count($aColumns) - 1]) { - case 0: - //id - $sQuery .= $aValues[count($aColumns) - 1] . ") "; - break; - case 1: - //text - $sQuery .= "'" . addslashes($aValues[count($aColumns) - 1]) . "') "; - break; - case 2: - //boolean - $sQuery .= ($aValues[count($aColumns) - 1] ? 1 : 0) . ") "; - break; - case 3: - //drop down list - $sQuery .= $aValues[count($aColumns) - 1] . ") "; - break; - default: - break; - } - //execute the query - $sql = $default->db; - $sql->query($sQuery); - $iPrimaryKey = $sql->insert_id(); - } else { - //perform an update - $sQuery = "UPDATE $sTableName SET "; - for ($j = 0; $j < count($aColumns) -1; $j++) { - $sQuery .= $aColumns[$j] . " = "; - switch ($aTypes[$j]) { - case 0: - //id - $sQuery .= $aValues[$j] . ", "; - break; - case 1: - $sQuery .= "'" . addslashes($aValues[$j]) . "', "; - break; - case 2: - $sQuery .= ($aValues[$j] ? 1 : 0) . ", "; - break; - case 3: - $sQuery .= $aValues[$j] . ", "; - break; - default: - break; - } - - } - $sQuery .= $aColumns[count($aTypes) -1] . " = "; - switch ($aTypes[count($aTypes) -1]) { - case 0: - //id - $sQuery .= $aValues[count($aTypes) -1] . " "; - break; - case 1: - $sQuery .= "'" . addslashes($aValues[count($aTypes) -1]) . "' "; - break; - case 2: - $sQuery .= ($aValues[count($aTypes) -1] ? 1 : 0) . " "; - break; - case 3: - $sQuery .= $aValues[count($aTypes) -1] . " "; - break; - default: - break; - } - $sQuery .= "WHERE id = $iPrimaryKey"; - //execute the query - $sql = $default->db; - $sql->query($sQuery); - } + //execute the queries + for ($i=0; $ilog->info("query=" . $aQueries[$i]); + $sql = $default->db; + $sql->query($aQueries[$i]); } + redirect(urldecode($fReturnURL)); } -redirect(urldecode($fReturnURL)); - - - - -?> +?> \ No newline at end of file -- libgit2 0.21.4