X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2FCore%2FPConfig.php;h=43735018e4ce143b2826ed61d61987d21cd9303e;hb=a8dc8b288cceefa881d88adeeada04be67c4ad90;hp=2bc08667a7f2f431e72686f32333971dd8e8a1bf;hpb=894b4286f512cad06cd0371ddbacb46b9aa293fa;p=friendica.git diff --git a/include/Core/PConfig.php b/include/Core/PConfig.php index 2bc08667a7..43735018e4 100644 --- a/include/Core/PConfig.php +++ b/include/Core/PConfig.php @@ -1,5 +1,8 @@ config[$uid][$family][$k] = $rr['v']; } @@ -65,37 +68,36 @@ class PConfig { */ public static function get($uid, $family, $key, $default_value = null, $refresh = false) { - global $a; + $a = get_app(); - if(! $refresh) { + if (!$refresh) { // Looking if the whole family isn't set - if(isset($a->config[$uid][$family])) { - if($a->config[$uid][$family] === '!!') { + if (isset($a->config[$uid][$family])) { + if ($a->config[$uid][$family] === '!!') { return $default_value; } } - if(isset($a->config[$uid][$family][$key])) { - if($a->config[$uid][$family][$key] === '!!') { + if (isset($a->config[$uid][$family][$key])) { + if ($a->config[$uid][$family][$key] === '!!') { return $default_value; } return $a->config[$uid][$family][$key]; } } - $ret = q("SELECT `v` FROM `pconfig` WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s' LIMIT 1", + $ret = q("SELECT `v` FROM `pconfig` WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s' ORDER BY `id` DESC LIMIT 1", intval($uid), dbesc($family), dbesc($key) ); - if(count($ret)) { + if (count($ret)) { $val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']); $a->config[$uid][$family][$key] = $val; return $val; - } - else { + } else { $a->config[$uid][$family][$key] = '!!'; } return $default_value; @@ -119,36 +121,41 @@ class PConfig { * The value to store * @return mixed Stored $value or false */ - public static function set($uid,$family,$key,$value) { + public static function set($uid, $family, $key, $value) { - global $a; + $a = get_app(); + + $stored = self::get($uid, $family, $key); + + if ($stored == $value) { + return true; + } // manage array value - $dbvalue = (is_array($value)?serialize($value):$value); + $dbvalue = (is_array($value) ? serialize($value):$value); - if(is_null(self::get($uid,$family,$key,null, true))) { - $a->config[$uid][$family][$key] = $value; - $ret = q("INSERT INTO `pconfig` ( `uid`, `cat`, `k`, `v` ) VALUES ( %d, '%s', '%s', '%s' ) ", + $a->config[$uid][$family][$key] = $value; + + if (is_null($stored)) { + $ret = q("INSERT INTO `pconfig` (`uid`, `cat`, `k`, `v`) VALUES (%d, '%s', '%s', '%s') ON DUPLICATE KEY UPDATE `v` = '%s'", intval($uid), dbesc($family), dbesc($key), + dbesc($dbvalue), dbesc($dbvalue) ); - if($ret) - return $value; - return $ret; + } else { + $ret = q("UPDATE `pconfig` SET `v` = '%s' WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s'", + dbesc($dbvalue), + intval($uid), + dbesc($family), + dbesc($key) + ); } - $ret = q("UPDATE `pconfig` SET `v` = '%s' WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s'", - dbesc($dbvalue), - intval($uid), - dbesc($family), - dbesc($key) - ); - - $a->config[$uid][$family][$key] = $value; - if($ret) + if ($ret) { return $value; + } return $ret; } @@ -167,14 +174,18 @@ class PConfig { */ public static function delete($uid,$family,$key) { - global $a; - if(x($a->config[$uid][$family],$key)) + $a = get_app(); + + if (x($a->config[$uid][$family], $key)) { unset($a->config[$uid][$family][$key]); + } + $ret = q("DELETE FROM `pconfig` WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s'", intval($uid), dbesc($family), dbesc($key) ); + return $ret; } }