コード例 #1
0
 /**
  * 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;
             }
         }
     }
 }