summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2005-08-23 18:34:50 +0200
committerAndreas Gohr <andi@splitbrain.org>2005-08-23 18:34:50 +0200
commite68c51bac31594213f669a7700b21ac8b87df959 (patch)
treedecd575b4d02a63e378f1e7b1ac133f6558b3766
parent1a54dfab2dc24df347bedc71b1d828855d83b89f (diff)
downloadrpg-e68c51bac31594213f669a7700b21ac8b87df959.tar.gz
rpg-e68c51bac31594213f669a7700b21ac8b87df959.tar.bz2
added missing indexer file
darcs-hash:20050823163450-7ad00-5ed5b87ee1898281090bb3170498866dbc18cb24.gz
-rw-r--r--inc/template.php3
-rw-r--r--lib/exe/indexer.php55
2 files changed, 57 insertions, 1 deletions
diff --git a/inc/template.php b/inc/template.php
index a17d16f56..be1ffd6d4 100644
--- a/inc/template.php
+++ b/inc/template.php
@@ -877,7 +877,8 @@ function tpl_img($maxwidth=900,$maxheight=700){
function tpl_indexerWebBug(){
global $ID;
$p = array();
- $p['src'] = DOKU_BASE.'lib/exe/indexer.php?id='.urlencode($ID);
+ $p['src'] = DOKU_BASE.'lib/exe/indexer.php?id='.urlencode($ID).
+ '&'.time();
$p['width'] = 1;
$p['height'] = 1;
$p['alt'] = '';
diff --git a/lib/exe/indexer.php b/lib/exe/indexer.php
new file mode 100644
index 000000000..fe9562d08
--- /dev/null
+++ b/lib/exe/indexer.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ * DokuWiki indexer
+ *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ * @author Andreas Gohr <andi@splitbrain.org>
+ */
+
+if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/');
+require_once(DOKU_INC.'inc/init.php');
+require_once(DOKU_INC.'inc/indexer.php');
+//close session
+session_write_close();
+
+
+$ID = cleanID($_REQUEST['id']);
+if(!$ID) sendGIF();
+
+// check if indexing needed
+$last = @filemtime(metaFN($ID,'.indexed'));
+if($last > @filemtime(wikiFN($ID))) sendGIF();
+
+// keep running
+@ignore_user_abort(true);
+
+// try to aquire a lock
+$lock = $conf['lockdir'].'/_indexer.lock';
+while(!@mkdir($lock)){
+ if(time()-@filemtime($lock) > 60*5){
+ // looks like a stale lock - remove it
+ @rmdir($lock);
+ }else{
+ sendGIF();
+ }
+}
+
+// do the work
+idx_addPage($ID);
+
+// we're finished
+io_saveFile(metaFN($id,'.indexed'),'');
+@rmdir($lock);
+sendGIF();
+
+/**
+ * Just send a 1x1 pixel blank gif to the browser and exit
+ */
+function sendGIF(){
+ header('Content-Type: image/gif');
+ print base64_decode('R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAEALAAAAAABAAEAAAIBTAA7');
+ exit;
+}
+
+//Setup VIM: ex: et ts=4 enc=utf-8 :
+?>