summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Eckelmann <eckelmann@cosmocode.de>2012-10-31 16:51:54 +0100
committerDominik Eckelmann <eckelmann@cosmocode.de>2012-10-31 16:51:54 +0100
commit8449cc9d82848df24eb88a73dd81d7e048933287 (patch)
treed2bb1d89985e9ef03930966502db213a8863bdc1
parentd12bd962d0cacbaad479be04cc953c607212756f (diff)
downloadrpg-8449cc9d82848df24eb88a73dd81d7e048933287.tar.gz
rpg-8449cc9d82848df24eb88a73dd81d7e048933287.tar.bz2
added event PAGEUTILS_ID_HIDEPAGE
-rw-r--r--_test/tests/inc/PageUtilsIsHiddenPage.test.php (renamed from _test/tests/inc/pageutils_isHiddenPage.test.php)14
-rw-r--r--inc/pageutils.php8
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;