xref: /plugin/combo/action/hiddenpage.php (revision 531e725cdb5a652164f2d97f556304e31f720033)
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::loadStrapUtilityTemplateIfPresentAndSameVersion();
36            if ($loaded) {
37
38                $pattern .= "|" . TplUtility::getFooterSlotPageName();
39                $pattern .= "|" . TplUtility::getSideKickSlotPageName();
40                $pattern .= "|" . TplUtility::getHeaderSlotPageName();
41
42            }
43        }
44        $pattern .= ")";
45        if (preg_match('/' . $pattern . '/ui', ':' . $event->data['id'])) {
46            $event->data['hidden'] = true;
47        }
48
49    }
50
51
52}
53