-function get_pconfig($uid,$family, $key, $instore = false) {
-
- global $a;
-
- if(! $instore) {
- // Looking if the whole family isn't set
- if(isset($a->config[$uid][$family])) {
- if($a->config[$uid][$family] === '!<unset>!') {
- return false;
- }
- }
-
- if(isset($a->config[$uid][$family][$key])) {
- if($a->config[$uid][$family][$key] === '!<unset>!') {
- return false;
- }
- return $a->config[$uid][$family][$key];
- }
- }
-
- // If APC is enabled then fetch the data from there, else try XCache
- /*if (function_exists("apc_fetch") AND function_exists("apc_exists"))
- if (apc_exists($uid."|".$family."|".$key)) {
- $val = apc_fetch($uid."|".$family."|".$key);
- $a->config[$uid][$family][$key] = $val;
-
- if ($val === '!<unset>!')
- return false;
- else
- return $val;
- }
- elseif (function_exists("xcache_get") AND function_exists("xcache_isset"))
- if (xcache_isset($uid."|".$family."|".$key)) {
- $val = xcache_get($uid."|".$family."|".$key);
- $a->config[$uid][$family][$key] = $val;
-
- if ($val === '!<unset>!')
- return false;
- else
- return $val;
- }*/
-
-
- $ret = q("SELECT `v` FROM `pconfig` WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s' LIMIT 1",
- intval($uid),
- dbesc($family),
- dbesc($key)
- );
-
- 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;
-
- // If APC is enabled then store the data there, else try XCache
- /*if (function_exists("apc_store"))
- apc_store($uid."|".$family."|".$key, $val, 600);
- elseif (function_exists("xcache_set"))
- xcache_set($uid."|".$family."|".$key, $val, 600);*/
-
- return $val;
- }
- else {
- $a->config[$uid][$family][$key] = '!<unset>!';
-
- // If APC is enabled then store the data there, else try XCache
- /*if (function_exists("apc_store"))
- apc_store($uid."|".$family."|".$key, '!<unset>!', 600);
- elseif (function_exists("xcache_set"))
- xcache_set($uid."|".$family."|".$key, '!<unset>!', 600);*/
- }
- return false;