diff options
author | Michael Hamann <michael@content-space.de> | 2012-03-15 14:21:42 +0100 |
---|---|---|
committer | Michael Hamann <michael@content-space.de> | 2012-03-15 14:59:35 +0100 |
commit | a23ac4d7df6b3952d2d1b76686d3b439fc0a6759 (patch) | |
tree | ae444b97e57647edb17299186b6368d41ec7deb1 | |
parent | d0caa5642f6e322a026bd5bdac4585ff1b2f40da (diff) | |
download | rpg-a23ac4d7df6b3952d2d1b76686d3b439fc0a6759.tar.gz rpg-a23ac4d7df6b3952d2d1b76686d3b439fc0a6759.tar.bz2 |
Indexer: Check for deleted pages first FS#2469
This move the check if the page doesn't exist anymore but is still in
the index before the check if the index needs to be updated as otherwise
deleted pages won't be deleted from the index.
-rw-r--r-- | inc/indexer.php | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/inc/indexer.php b/inc/indexer.php index 9d8d6f99b..3f56e5fe5 100644 --- a/inc/indexer.php +++ b/inc/indexer.php @@ -1174,18 +1174,8 @@ function & idx_get_stopwords() { * @author Tom N Harris <tnharris@whoopdedo.org> */ function idx_addPage($page, $verbose=false, $force=false) { - // check if indexing needed $idxtag = metaFN($page,'.indexed'); - if(!$force && @file_exists($idxtag)){ - if(trim(io_readFile($idxtag)) == idx_get_version()){ - $last = @filemtime($idxtag); - if($last > @filemtime(wikiFN($page))){ - if ($verbose) print("Indexer: index for $page up to date".DOKU_LF); - return false; - } - } - } - + // check if page was deleted but is still in the index if (!page_exists($page)) { if (!@file_exists($idxtag)) { if ($verbose) print("Indexer: $page does not exist, ignoring".DOKU_LF); @@ -1200,6 +1190,18 @@ function idx_addPage($page, $verbose=false, $force=false) { @unlink($idxtag); return $result; } + + // check if indexing needed + if(!$force && @file_exists($idxtag)){ + if(trim(io_readFile($idxtag)) == idx_get_version()){ + $last = @filemtime($idxtag); + if($last > @filemtime(wikiFN($page))){ + if ($verbose) print("Indexer: index for $page up to date".DOKU_LF); + return false; + } + } + } + $indexenabled = p_get_metadata($page, 'internal index', METADATA_RENDER_UNLIMITED); if ($indexenabled === false) { $result = false; |