xref: /plugin/combo/action/hiddenpage.php (revision 4bbe70e0e63375508803b6a252b35e0d1549a0e9)
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            $loaded = PluginUtility::loadStrapUtilityTemplate();
36            if ($loaded) {
37                if (defined('ComboStrap\TplUtility::CONF_FOOTER')) {
38                    $footer = tpl_getConf(TplUtility::CONF_FOOTER);
39                    $pattern .= "|" . $footer;
40                }
41                if (defined('ComboStrap\TplUtility::CONF_SIDEKICK')) {
42                    $sidekick = tpl_getConf(TplUtility::CONF_SIDEKICK);
43                    $pattern .= "|" . $sidekick;
44                }
45                if (defined('ComboStrap\TplUtility::CONF_HEADER')) {
46                    $header = tpl_getConf(TplUtility::CONF_HEADER);
47                    $pattern .= "|" . $header;
48                }
49            }
50        }
51        $pattern .= ")";
52        if (preg_match('/' . $pattern . '/ui', ':' . $event->data['id'])) {
53            $event->data['hidden'] = true;
54        }
55
56    }
57
58
59}
60