From a0070b52bbd24f6972b819fa8ff4bdbfe81b5bbc Mon Sep 17 00:00:00 2001 From: Adrian Lang <lang@cosmocode.de> Date: Wed, 16 Jun 2010 16:15:28 +0200 Subject: [PATCH] Add title index to the indexer files, improve indexer calls --- bin/indexer.php | 1 + inc/fulltext.php | 5 ++--- inc/init.php | 3 ++- lib/exe/indexer.php | 2 +- lib/exe/xmlrpc.php | 26 ++++++++++++-------------- 5 files changed, 18 insertions(+), 19 deletions(-) diff --git a/bin/indexer.php b/bin/indexer.php index 55f3608d5..c95314d7c 100755 --- a/bin/indexer.php +++ b/bin/indexer.php @@ -152,6 +152,7 @@ function _clearindex(){ _lock(); _quietecho("Clearing index... "); io_saveFile($conf['indexdir'].'/page.idx',''); + io_saveFile($conf['indexdir'].'/title.idx',''); $dir = @opendir($conf['indexdir']); if($dir!==false){ while(($f = readdir($dir)) !== false){ diff --git a/inc/fulltext.php b/inc/fulltext.php index a68770277..b6aac5c91 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -233,9 +233,8 @@ function _ft_pageLookup(&$data){ $in_ns = !$data['not_in_ns']; $in_title = !$data['not_in_title']; - global $conf; - $pages = array_map('rtrim', file($conf['indexdir'].'/page.idx')); - $titles = array_map('rtrim', file($conf['indexdir'].'/title.idx')); + $pages = array_map('rtrim', idx_getIndex('page', '')); + $titles = array_map('rtrim', idx_getIndex('title', '')); $pages = array_combine($pages, $titles); if($id !== '' && cleanID($id) !== '') { diff --git a/inc/init.php b/inc/init.php index 3a9988fcf..20263f95a 100644 --- a/inc/init.php +++ b/inc/init.php @@ -304,7 +304,8 @@ function init_paths(){ function init_files(){ global $conf; - $files = array( $conf['indexdir'].'/page.idx'); + $files = array( $conf['indexdir'].'/page.idx', + $conf['indexdir'].'/title.idx'); foreach($files as $file){ if(!@file_exists($file)){ diff --git a/lib/exe/indexer.php b/lib/exe/indexer.php index 1e6eb5685..75228779e 100644 --- a/lib/exe/indexer.php +++ b/lib/exe/indexer.php @@ -255,7 +255,7 @@ function runSitemapper(){ return false; } - $pages = file($conf['indexdir'].'/page.idx'); + $pages = idx_getIndex('page', ''); print 'runSitemapper(): creating sitemap using '.count($pages).' pages'.NL; // build the sitemap diff --git a/lib/exe/xmlrpc.php b/lib/exe/xmlrpc.php index 377003cf1..f06792361 100644 --- a/lib/exe/xmlrpc.php +++ b/lib/exe/xmlrpc.php @@ -354,24 +354,22 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer { * List all pages - we use the indexer list here */ function listPages(){ - global $conf; - $list = array(); - $pages = file($conf['indexdir'] . '/page.idx'); - $pages = array_filter($pages, 'isVisiblePage'); + $pages = array_filter(array_filter(idx_getIndex('page', ''), + 'isVisiblePage'), + 'page_exists'); foreach(array_keys($pages) as $idx) { - if(page_exists($pages[$idx])) { - $perm = auth_quickaclcheck($pages[$idx]); - if($perm >= AUTH_READ) { - $page = array(); - $page['id'] = trim($pages[$idx]); - $page['perms'] = $perm; - $page['size'] = @filesize(wikiFN($pages[$idx])); - $page['lastModified'] = new IXR_Date(@filemtime(wikiFN($pages[$idx]))); - $list[] = $page; - } + $perm = auth_quickaclcheck($pages[$idx]); + if($perm < AUTH_READ) { + continue; } + $page = array(); + $page['id'] = trim($pages[$idx]); + $page['perms'] = $perm; + $page['size'] = @filesize(wikiFN($pages[$idx])); + $page['lastModified'] = new IXR_Date(@filemtime(wikiFN($pages[$idx]))); + $list[] = $page; } return $list; -- GitLab