diff options
author | M.Dent <dentm42@dm42.net> | 2018-10-28 17:23:31 -0400 |
---|---|---|
committer | M.Dent <dentm42@dm42.net> | 2018-10-28 17:23:31 -0400 |
commit | 3ab0ef1902a9ff1f33cf5540a866745dc98a11a9 (patch) | |
tree | 523ac2eeede1cb9c1ded36bbc1e58f5735d09a5a /include | |
parent | c7c35b8b5a64e44f01e7557a43d13e518dc62aa8 (diff) | |
download | volse-hubzilla-3ab0ef1902a9ff1f33cf5540a866745dc98a11a9.tar.gz volse-hubzilla-3ab0ef1902a9ff1f33cf5540a866745dc98a11a9.tar.bz2 volse-hubzilla-3ab0ef1902a9ff1f33cf5540a866745dc98a11a9.zip |
Add timestamp and associated logic to pconfig
Diffstat (limited to 'include')
-rw-r--r-- | include/config.php | 4 | ||||
-rw-r--r-- | include/zot.php | 37 |
2 files changed, 37 insertions, 4 deletions
diff --git a/include/config.php b/include/config.php index 0be791715..ec3547a82 100644 --- a/include/config.php +++ b/include/config.php @@ -59,8 +59,8 @@ function set_pconfig($uid, $family, $key, $value) { return Zlib\PConfig::Set($uid,$family,$key,$value); } -function del_pconfig($uid, $family, $key) { - return Zlib\PConfig::Delete($uid,$family,$key); +function del_pconfig($uid, $family, $key, $updated = NULL) { + return Zlib\PConfig::Delete($uid,$family,$key,$updated); } function load_xconfig($xchan) { diff --git a/include/zot.php b/include/zot.php index 1a632cf87..a5202d01b 100644 --- a/include/zot.php +++ b/include/zot.php @@ -3507,8 +3507,41 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) { if(array_key_exists('config',$arr) && is_array($arr['config']) && count($arr['config'])) { foreach($arr['config'] as $cat => $k) { - foreach($arr['config'][$cat] as $k => $v) - set_pconfig($channel['channel_id'],$cat,$k,$v); + + $pconfig_updated = []; + $pconfig_del = []; + + foreach($arr['config'][$cat] as $k => $v) { + + if (strpos($k,'pcfgud:')==0) { + + $realk = substr($k,7); + $pconfig_updated[$realk] = $v; + unset($arr['config'][$cat][$k]); + + } + + if (strpos($k,'pcfgdel:')==0) { + $realk = substr($k,8); + $pconfig_del[$realk] = $v; + unset($arr['config'][$cat][$k]); + } + } + + foreach($arr['config'][$cat] as $k => $v) { + + if (!isset($pconfig_updated[$k])) { + $pconfig_updated[$k] = NULL; + } + + set_pconfig($channel['channel_id'],$cat,$k,$v,$pconfig_updated[$k]); + + } + + foreach($pconfig_del as $k => $updated) { + del_pconfig($channel['channel_id'],$cat,$k,$updated); + } + } } |