xref: /plugin/combo/action/hiddenpage.php (revision 85e82846b0a214bc35e62864fa49d9cad0723d0e)
1007225e5Sgerardnico<?php
2007225e5Sgerardnico
3007225e5Sgerardnico
4007225e5Sgerardnicouse ComboStrap\PluginUtility;
5007225e5Sgerardnicouse ComboStrap\TplConstant;
621913ab3SNickeauuse ComboStrap\TplUtility;
7007225e5Sgerardnico
8007225e5Sgerardnico/**
9007225e5Sgerardnico * Class action_plugin_combo_hidden
10007225e5Sgerardnico * Hide page
11*85e82846SNickeau *
12*85e82846SNickeau *
13*85e82846SNickeau * More on the official [[doku>config:hidepages|DokuWiki documentation]]
14007225e5Sgerardnico */
15007225e5Sgerardnicoclass action_plugin_combo_hiddenpage extends DokuWiki_Action_Plugin
16007225e5Sgerardnico{
17007225e5Sgerardnico
18007225e5Sgerardnico
1921913ab3SNickeau    const CANONICAL = "";
2021913ab3SNickeau
21007225e5Sgerardnico    public function register(Doku_Event_Handler $controller)
22007225e5Sgerardnico    {
23007225e5Sgerardnico        /**
24007225e5Sgerardnico         * https://www.dokuwiki.org/devel:event:pageutils_id_hidepage
25007225e5Sgerardnico         */
26007225e5Sgerardnico        $controller->register_hook('PAGEUTILS_ID_HIDEPAGE', 'BEFORE', $this, 'handleIsHidden', array());
27007225e5Sgerardnico    }
28007225e5Sgerardnico
29007225e5Sgerardnico    function handleIsHidden(&$event, $param)
30007225e5Sgerardnico    {
31007225e5Sgerardnico        global $conf;
32007225e5Sgerardnico
33007225e5Sgerardnico        /**
34*85e82846SNickeau         * Caching the slot and private namespace
35007225e5Sgerardnico         */
36007225e5Sgerardnico        $pattern = "(" . $conf['sidebar'] . "|" . PluginUtility::COMBOSTRAP_NAMESPACE_NAME;
37007225e5Sgerardnico        if ($conf['template'] == PluginUtility::TEMPLATE_STRAP_NAME) {
38531e725cSNickeau            $loaded = PluginUtility::loadStrapUtilityTemplateIfPresentAndSameVersion();
394bbe70e0Sgerardnico            if ($loaded) {
40531e725cSNickeau
41531e725cSNickeau                $pattern .= "|" . TplUtility::getFooterSlotPageName();
42531e725cSNickeau                $pattern .= "|" . TplUtility::getSideKickSlotPageName();
43531e725cSNickeau                $pattern .= "|" . TplUtility::getHeaderSlotPageName();
44531e725cSNickeau
454bbe70e0Sgerardnico            }
46007225e5Sgerardnico        }
47007225e5Sgerardnico        $pattern .= ")";
48007225e5Sgerardnico        if (preg_match('/' . $pattern . '/ui', ':' . $event->data['id'])) {
49007225e5Sgerardnico            $event->data['hidden'] = true;
50007225e5Sgerardnico        }
51007225e5Sgerardnico
52007225e5Sgerardnico    }
53007225e5Sgerardnico
54007225e5Sgerardnico
55007225e5Sgerardnico}
56