diff options
author | Michael Klier <chi@chimeric.de> | 2008-03-26 21:02:31 +0100 |
---|---|---|
committer | Michael Klier <chi@chimeric.de> | 2008-03-26 21:02:31 +0100 |
commit | 3d1f9ec3674462e63f4195dd834603148a7c7b42 (patch) | |
tree | e0a310e687ce3595adb45658c15b472fd99ab8fb /inc/parserutils.php | |
parent | 6a5b38cd97b00e27beaae7e3158f868dfcde4193 (diff) | |
download | rpg-3d1f9ec3674462e63f4195dd834603148a7c7b42.tar.gz rpg-3d1f9ec3674462e63f4195dd834603148a7c7b42.tar.bz2 |
purge non-persistent meta data on page deletion
With this patch applied the persistent meta data of pages is kept when a
page is deleted. This way the original page creator as well as the creation
time of the page is preserved.
darcs-hash:20080326200231-23886-ddb70151fadf25d0254d56408b71484047198096.gz
Diffstat (limited to 'inc/parserutils.php')
-rw-r--r-- | inc/parserutils.php | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/inc/parserutils.php b/inc/parserutils.php index d03ad8d1e..2c4da90f9 100644 --- a/inc/parserutils.php +++ b/inc/parserutils.php @@ -323,6 +323,25 @@ function p_set_metadata($id, $data, $render=false, $persistent=true){ } /** + * Purges the non-persistant part of the meta data + * used on page deletion + * + * @author Michael Klier <chi@chimeric.de> + */ +function p_purge_metadata($id) { + $metafn = metaFN('id', '.meta'); + $meta = p_read_metadata($id); + foreach($meta['current'] as $key => $value) { + if(is_array($meta[$key])) { + $meta['current'][$key] = array(); + } else { + $meta['current'][$key] = ''; + } + } + return io_saveFile(metaFN($id, '.meta'), serialize($meta)); +} + +/** * read the metadata from source/cache for $id * (internal use only - called by p_get_metadata & p_set_metadata) * |