summaryrefslogtreecommitdiff
path: root/lib/exe/indexer.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/exe/indexer.php')
-rw-r--r--lib/exe/indexer.php28
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