xref: /plugin/combo/action/hiddenpage.php (revision 21913ab3235d516e2fa19c7e3929b555b3a2bda1)
1007225e5Sgerardnico<?php
2007225e5Sgerardnico
3007225e5Sgerardnico
4007225e5Sgerardnicouse ComboStrap\PluginUtility;
5007225e5Sgerardnicouse ComboStrap\TplConstant;
6*21913ab3SNickeauuse ComboStrap\TplUtility;
7007225e5Sgerardnico
8007225e5Sgerardnico/**
9007225e5Sgerardnico * Class action_plugin_combo_hidden
10007225e5Sgerardnico * Hide page
11007225e5Sgerardnico */
12007225e5Sgerardnicoclass action_plugin_combo_hiddenpage extends DokuWiki_Action_Plugin
13007225e5Sgerardnico{
14007225e5Sgerardnico
15007225e5Sgerardnico
16*21913ab3SNickeau    const CANONICAL = "";
17*21913ab3SNickeau
18007225e5Sgerardnico    public function register(Doku_Event_Handler $controller)
19007225e5Sgerardnico    {
20007225e5Sgerardnico        /**
21007225e5Sgerardnico         * https://www.dokuwiki.org/devel:event:pageutils_id_hidepage
22007225e5Sgerardnico         */
23007225e5Sgerardnico        $controller->register_hook('PAGEUTILS_ID_HIDEPAGE', 'BEFORE', $this, 'handleIsHidden', array());
24007225e5Sgerardnico    }
25007225e5Sgerardnico
26007225e5Sgerardnico    function handleIsHidden(&$event, $param)
27007225e5Sgerardnico    {
28007225e5Sgerardnico        global $conf;
29007225e5Sgerardnico
30007225e5Sgerardnico        /**
31007225e5Sgerardnico         * Caching the strap bars and private namespace
32007225e5Sgerardnico         */
33007225e5Sgerardnico        $pattern = "(" . $conf['sidebar'] . "|" . PluginUtility::COMBOSTRAP_NAMESPACE_NAME;
34007225e5Sgerardnico        if ($conf['template'] == PluginUtility::TEMPLATE_STRAP_NAME) {
35*21913ab3SNickeau            PluginUtility::loadStrapUtilityTemplate();
36*21913ab3SNickeau            $footer = tpl_getConf(TplUtility::CONF_FOOTER);
37*21913ab3SNickeau            $sidekick = tpl_getConf(TplUtility::CONF_SIDEKICK);
38*21913ab3SNickeau            $header = tpl_getConf(TplUtility::CONF_HEADER);
39007225e5Sgerardnico            $pattern .= "|" . $footer . "|" . $sidekick . "|" . $header;
40007225e5Sgerardnico        }
41007225e5Sgerardnico        $pattern .= ")";
42007225e5Sgerardnico        if (preg_match('/' . $pattern . '/ui', ':' . $event->data['id'])) {
43007225e5Sgerardnico            $event->data['hidden'] = true;
44007225e5Sgerardnico        }
45007225e5Sgerardnico
46007225e5Sgerardnico    }
47007225e5Sgerardnico
48007225e5Sgerardnico
49007225e5Sgerardnico}
50