diff options
author | Gerrit Uitslag <klapinklapin@gmail.com> | 2014-09-28 15:36:21 +0200 |
---|---|---|
committer | Gerrit Uitslag <klapinklapin@gmail.com> | 2014-09-28 15:36:21 +0200 |
commit | 0c1b02bead38d5a58032a1c88cf3ca53bbc4a4d9 (patch) | |
tree | b9cb574a1964f28dda648795010a5be056b80618 /inc/fulltext.php | |
parent | 618191d008b98cb421694c541145c863d7b300ce (diff) | |
parent | da9572711f54d13ce3c5506971154b0bc359723f (diff) | |
download | rpg-0c1b02bead38d5a58032a1c88cf3ca53bbc4a4d9.tar.gz rpg-0c1b02bead38d5a58032a1c88cf3ca53bbc4a4d9.tar.bz2 |
Merge remote-tracking branch 'origin/master' into FS#2697searchpagereadonly
Conflicts:
inc/lang/hr/searchpage.txt
inc/lang/ko/searchpage.txt
Diffstat (limited to 'inc/fulltext.php')
-rw-r--r-- | inc/fulltext.php | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/inc/fulltext.php b/inc/fulltext.php index 87b5a7370..aaef090e1 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -72,8 +72,20 @@ function _ft_pageSearch(&$data) { $pages = end($stack); $pages_matched = array(); foreach(array_keys($pages) as $id){ - $text = utf8_strtolower(rawWiki($id)); - if (strpos($text, $phrase) !== false) { + $evdata = array( + 'id' => $id, + 'phrase' => $phrase, + 'text' => rawWiki($id) + ); + $evt = new Doku_Event('FULLTEXT_PHRASE_MATCH',$evdata); + if ($evt->advise_before() && $evt->result !== true) { + $text = utf8_strtolower($evdata['text']); + if (strpos($text, $phrase) !== false) { + $evt->result = true; + } + } + $evt->advise_after(); + if ($evt->result === true) { $pages_matched[$id] = 0; // phrase: always 0 hit } } @@ -203,7 +215,7 @@ function ft_pageLookup($id, $in_ns=false, $in_title=false){ function _ft_pageLookup(&$data){ // split out original parameters $id = $data['id']; - if (preg_match('/(?:^| )@(\w+)/', $id, $matches)) { + if (preg_match('/(?:^| )(?:@|ns:)([\w:]+)/', $id, $matches)) { $ns = cleanID($matches[1]) . ':'; $id = str_replace($matches[0], '', $id); } |