xref: /plugin/combo/action/hiddenpage.php (revision 21913ab3235d516e2fa19c7e3929b555b3a2bda1)
1<?php
2
3
4use ComboStrap\PluginUtility;
5use ComboStrap\TplConstant;
6use ComboStrap\TplUtility;
7
8/**
9 * Class action_plugin_combo_hidden
10 * Hide page
11 */
12class action_plugin_combo_hiddenpage extends DokuWiki_Action_Plugin
13{
14
15
16    const CANONICAL = "";
17
18    public function register(Doku_Event_Handler $controller)
19    {
20        /**
21         * https://www.dokuwiki.org/devel:event:pageutils_id_hidepage
22         */
23        $controller->register_hook('PAGEUTILS_ID_HIDEPAGE', 'BEFORE', $this, 'handleIsHidden', array());
24    }
25
26    function handleIsHidden(&$event, $param)
27    {
28        global $conf;
29
30        /**
31         * Caching the strap bars and private namespace
32         */
33        $pattern = "(" . $conf['sidebar'] . "|" . PluginUtility::COMBOSTRAP_NAMESPACE_NAME;
34        if ($conf['template'] == PluginUtility::TEMPLATE_STRAP_NAME) {
35            PluginUtility::loadStrapUtilityTemplate();
36            $footer = tpl_getConf(TplUtility::CONF_FOOTER);
37            $sidekick = tpl_getConf(TplUtility::CONF_SIDEKICK);
38            $header = tpl_getConf(TplUtility::CONF_HEADER);
39            $pattern .= "|" . $footer . "|" . $sidekick . "|" . $header;
40        }
41        $pattern .= ")";
42        if (preg_match('/' . $pattern . '/ui', ':' . $event->data['id'])) {
43            $event->data['hidden'] = true;
44        }
45
46    }
47
48
49}
50