Просмотр исходного кода

#644 Core enhancements:
- allow to pass custom curl params
- don't update id in form autoupdate routine

Alex Trofimov 9 лет назад
Родитель
Сommit
30da821167
2 измененных файлов с 15 добавлено и 3 удалено
  1. 10 2
      inc/classes/BxDolForm.php
  2. 5 1
      inc/utils.inc.php

+ 10 - 2
inc/classes/BxDolForm.php

@@ -1246,7 +1246,7 @@ class BxDolFormChecker
     }
 
     // db functions
-    function serializeDbValues (&$aInputs, &$aValsToAdd, &$aTrackTextFieldsChanges = null)
+    function serializeDbValues (&$aInputs, &$aValsToAdd, &$aTrackTextFieldsChanges = null, $aUnset = null)
     {
         $aValsToUpdate = array();
 
@@ -1270,6 +1270,14 @@ class BxDolFormChecker
             $aValsToUpdate[$k] = $val;
         }
 
+        // don't update id field for update statement
+        if ($aUnset) {
+            foreach ($aUnset as $sKey) {
+                if (isset($aValsToUpdate[$sKey]))
+                    unset($aValsToUpdate[$sKey]);
+            }
+        }
+
         // build SQL query part
         return BxDolDb::getInstance()->arrayToSQL($aValsToUpdate);
     }
@@ -1299,7 +1307,7 @@ class BxDolFormChecker
             $aTrackTextFieldsChanges['data'] = $oDb->getRow($sQuery);
         }
 
-        $sFields = $this->serializeDbValues ($aInputs, $aValsToAdd, $aTrackTextFieldsChanges);
+        $sFields = $this->serializeDbValues ($aInputs, $aValsToAdd, $aTrackTextFieldsChanges, array($aDb['key']));
         if (!$sFields)
             return '';
 

+ 5 - 1
inc/utils.inc.php

@@ -800,7 +800,7 @@ function bx_php_string_quot ($mixedInput)
  * @param array $aBasicAuth - array with 'user' and 'password' for Basic HTTP Auth
  * @return string the file's contents.
  */
-function bx_file_get_contents($sFileUrl, $aParams = array(), $sMethod = 'get', $aHeaders = array(), &$sHttpCode = null, $aBasicAuth = array(), $iTimeout = 0)
+function bx_file_get_contents($sFileUrl, $aParams = array(), $sMethod = 'get', $aHeaders = array(), &$sHttpCode = null, $aBasicAuth = array(), $iTimeout = 0, $aCustomCurlParams = array())
 {
     if ('post' != $sMethod)
     	$sFileUrl = bx_append_url_params($sFileUrl, $aParams);
@@ -840,6 +840,10 @@ function bx_file_get_contents($sFileUrl, $aParams = array(), $sMethod = 'get', $
         }
         curl_setopt($rConnect, CURLOPT_COOKIE, $sAllCookies);
 
+        if ($aCustomCurlParams)
+            foreach ($aCustomCurlParams as $sName => $mixedValue)
+                curl_setopt($rConnect, constant($sName), $mixedValue);
+
         $sResult = curl_exec($rConnect);
 
         if (curl_errno($rConnect) == 60) { // CURLE_SSL_CACERT