/** * save record * * @access private */ function saveElement() { if (isset($_GET['pos'])) { $GLOBALS['numId'] = $_GET['pos']; } if (isset($_REQUEST['numId'])) { $GLOBALS['numId'] = $_REQUEST['numId']; } if (isset($_GET['query'])) { $GLOBALS['req'] = urldecode($_GET['query']); } elseif (isset($_POST['req'])) { $GLOBALS['req'] = urldecode($_POST['req']); } if (isset($GLOBALS['req']) && isset($GLOBALS['numId'])) { $oldValue = $this->recupElement($GLOBALS['req'], $GLOBALS['numId']); } if (isset($_POST['valField']) && is_array($_POST['valField'])) { while (list($champ, $value) = each($_POST['valField'])) { $value = SQLiteStripSlashes($value); $cid = $this->getCID($champ); $tempType = $this->infoTable[$cid]['type']; if (isset($_POST['funcs'][$champ]) && !empty($_POST['funcs'][$champ])) { if (preg_match('#CHAR|TEXT|LOB|DATE#i', $tempType)) { $funcVal = quotes($value); } else { $funcVal = $value; } $value = applyFunction($_POST['funcs'][$champ], $funcVal); } elseif (!isset($_POST['nullField'][$champ]) || !$_POST['nullField'][$champ]) { if ($tempType) { if (preg_match('#CHAR|TEXT|LOB|DATE#i', $tempType)) { $value = quotes($value); } } else { $value = quotes($value); } } if (isset($_POST['nullField'][$champ])) { $value = 'NULL'; } if (!isset($_POST['numId']) || $_POST['save_type'] == "as_new_row") { $listColumn[] = brackets($champ); $listValue[] = $value; } else { if (isset($oldValue[$champ]) && $value != quotes($oldValue[$champ]) || !isset($oldValue[$champ]) && $value != "NULL") { $listColumn[] = brackets($champ) . '=' . $value; } } } } $query = ''; if ($GLOBALS['action'] == 'deleteElement') { $query = 'DELETE FROM ' . brackets($GLOBALS['table']) . ' WHERE ROWID=' . $oldValue['ROWID']; } elseif (isset($_POST['numId']) && $_POST['save_type'] != "as_new_row") { if (isset($listColumn) && !empty($listColumn)) { $query = 'UPDATE ' . brackets($GLOBALS['table']) . ' SET ' . implode(', ', $listColumn) . ' WHERE ROWID=' . $oldValue['ROWID']; } } else { if (isset($listColumn) && isset($listValue)) { $query = 'INSERT INTO ' . brackets($GLOBALS['table']) . ' (' . implode(', ', $listColumn) . ') VALUES (' . implode(', ', $listValue) . ')'; } } displayQuery($query); $errorCode = false; if (isset($query) && !empty($query)) { $this->connId->getResId('BEGIN;'); if (!$this->connId->getResId($query)) { echo '<center><span style="color: red;">' . $GLOBALS['traduct']->get(9) . ' : ' . @$this->connId->connId->getError() . '</span></center>'; $this->formElement($GLOBALS['req'], $GLOBALS['numId'], true); } $this->connId->getResId('COMMIT;'); } // return management if (!isset($_REQUEST['after_save']) && isset($_REQUEST['currentPage'])) { $_REQUEST['after_save'] = $_REQUEST['currentPage']; } if (!$errorCode && isset($_REQUEST['after_save'])) { if ($_REQUEST['after_save'] == '') { $this->formElement(isset($GLOBALS['req']) ? $GLOBALS['req'] : '', isset($GLOBALS['numId']) ? $GLOBALS['numId'] : ''); } else { switch ($_REQUEST['after_save']) { case '': case 'properties': $this->tablePropView(); break; case 'browseItem': if (isset($GLOBALS['numId'])) { $GLOBALS['noDisplay'] = true; include_once INCLUDE_LIB . 'ParsingQuery.class.php'; $tabRes = ParsingQuery::noLimit($GLOBALS['req']); $GLOBALS['DisplayQuery'] = $tabRes['query']; $GLOBALS['pageBrowse'] = $_GET['pageBrowse'] = $tabRes['page']; } $GLOBALS['reBrowse'] = true; break; } } } }