diff options
-rw-r--r-- | _test/tests/inc/PageUtilsIsHiddenPage.test.php (renamed from _test/tests/inc/pageutils_isHiddenPage.test.php) | 14 | ||||
-rw-r--r-- | inc/pageutils.php | 8 |
2 files changed, 21 insertions, 1 deletions
diff --git a/_test/tests/inc/pageutils_isHiddenPage.test.php b/_test/tests/inc/PageUtilsIsHiddenPage.test.php index 8f2fcebea..153d0e8f6 100644 --- a/_test/tests/inc/pageutils_isHiddenPage.test.php +++ b/_test/tests/inc/PageUtilsIsHiddenPage.test.php @@ -1,6 +1,6 @@ <?php -class inc_pageutils_isHiddenPage extends DokuWikiTest { +class PageUtilsIsHiddenPageTest extends DokuWikiTest { function prepare($hidePages = '^:test$', $act = 'show') { global $conf; @@ -33,5 +33,17 @@ class inc_pageutils_isHiddenPage extends DokuWikiTest { $this->assertFalse(isHiddenPage('another')); } + function testEventHandler() { + global $EVENT_HANDLER; + $this->prepare(); + $EVENT_HANDLER->register_hook('PAGEUTILS_ID_HIDEPAGE', 'BEFORE', $this, 'alwaysHide'); + + $this->assertFalse(isHiddenPage('test')); + } + + function alwaysHide(Doku_Event &$event, $params) { + $event->data['hide'] = true; + } + } //Setup VIM: ex: et ts=4 : diff --git a/inc/pageutils.php b/inc/pageutils.php index 55cc081a1..853d3fb4d 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -538,6 +538,14 @@ function getCacheName($data,$ext=''){ function isHiddenPage($id){ global $conf; global $ACT; + + $data = array( + 'id' => $id, + 'hidden' => false + ); + trigger_event('PAGEUTILS_ID_HIDEPAGE', $id); + + if ($data['hidden']) return true; if(empty($conf['hidepages'])) return false; if($ACT == 'admin') return false; |