From 95dbfe5721704a800c0f108c048ab3cb5e13de3b Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 30 Apr 2006 20:17:40 +0200 Subject: metadata enhancements This adds meta data rendering to the indexer process to build missing meta data in the background. p_get_first_heading was adjusted to make use of the new meta data mechanisms A problem with unitialized arrays in p_set_metadata and PHP5 was fixed (I think) darcs-hash:20060430181740-7ad00-8952fa6beb4fadf6b4321627998442d34febfc8d.gz --- lib/exe/indexer.php | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'lib/exe/indexer.php') diff --git a/lib/exe/indexer.php b/lib/exe/indexer.php index 28eaa8284..d37fb9c9a 100644 --- a/lib/exe/indexer.php +++ b/lib/exe/indexer.php @@ -21,7 +21,7 @@ sendGIF(); if(!$_REQUEST['debug']) ob_start(); // run one of the jobs -runIndexer() or runSitemapper(); +runIndexer() or metaUpdate() or runSitemapper(); if(!$_REQUEST['debug']) ob_end_clean(); exit; @@ -74,6 +74,32 @@ function runIndexer(){ return true; } +/** + * Will render the metadata for the page if not exists yet + * + * This makes sure pages which are created from outside DokuWiki will + * gain their data when viewed for the first time. + */ +function metaUpdate(){ + print "metaUpdate(): started".NL; + + $ID = cleanID($_REQUEST['id']); + if(!$ID) return false; + $file = metaFN($ID, '.meta'); + + // rendering needed? + if (@file_exists($file)) return false; + + require_once(DOKU_INC.'inc/parserutils.php'); + + $meta = array(); + $meta = p_render_metadata($ID, $meta); + io_saveFile($file, serialize($meta)); + + print "metaUpdate(): finished".NL; + return true; +} + /** * Builds a Google Sitemap of all public pages known to the indexer * -- cgit v1.2.3