xref: /template/strap/action/hiddenpage.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
1<?php
2
3
4use ComboStrap\ExceptionCompile;
5use ComboStrap\PluginUtility;
6use ComboStrap\Site;
7use ComboStrap\SlotSystem;
8use ComboStrap\TplUtility;
9
10/**
11 * Class action_plugin_combo_hidden
12 * Hide page
13 *
14 *
15 * More on the official [[doku>config:hidepages|DokuWiki documentation]]
16 */
17class action_plugin_combo_hiddenpage extends DokuWiki_Action_Plugin
18{
19
20
21    const CANONICAL = "";
22
23    public function register(Doku_Event_Handler $controller)
24    {
25        /**
26         * https://www.dokuwiki.org/devel:event:pageutils_id_hidepage
27         */
28        $controller->register_hook('PAGEUTILS_ID_HIDEPAGE', 'BEFORE', $this, 'handleIsHidden', array());
29    }
30
31    function handleIsHidden(&$event, $param)
32    {
33        global $conf;
34
35        /**
36         * Caching the slot and private namespace
37         */
38        $pattern = "(" . SlotSystem::getSidebarName() . "|" . PluginUtility::COMBOSTRAP_NAMESPACE_NAME;
39        $pattern .= "|" . SlotSystem::getPageHeaderSlotName();
40        $pattern .= "|" . SlotSystem::getPageFooterSlotName();
41        $pattern .= "|" . SlotSystem::getMainSideSlotName();
42        $pattern .= "|" . SlotSystem::getMainFooterSlotName();
43        $pattern .= "|" . SlotSystem::getMainHeaderSlotName();
44        $pattern .= ")";
45        if (preg_match('/' . $pattern . '/ui', ':' . $event->data['id'])) {
46            $event->data['hidden'] = true;
47        }
48
49    }
50
51
52}
53