diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/exe/indexer.php | 28 |
1 files changed, 27 insertions, 1 deletions
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; @@ -75,6 +75,32 @@ function runIndexer(){ } /** + * 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 * * The map is placed in the root directory named sitemap.xml.gz - This |