summaryrefslogtreecommitdiff
path: root/inc/parserutils.php
diff options
context:
space:
mode:
authorMichael Klier <chi@chimeric.de>2008-03-26 21:02:31 +0100
committerMichael Klier <chi@chimeric.de>2008-03-26 21:02:31 +0100
commit3d1f9ec3674462e63f4195dd834603148a7c7b42 (patch)
treee0a310e687ce3595adb45658c15b472fd99ab8fb /inc/parserutils.php
parent6a5b38cd97b00e27beaae7e3158f868dfcde4193 (diff)
downloadrpg-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.php19
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)
*