xref: /plugin/combo/action/hiddenpage.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
1007225e5Sgerardnico<?php
2007225e5Sgerardnico
3007225e5Sgerardnico
4*04fd306cSNickeauuse ComboStrap\ExceptionCompile;
5007225e5Sgerardnicouse ComboStrap\PluginUtility;
64cadd4f8SNickeauuse ComboStrap\Site;
7*04fd306cSNickeauuse ComboStrap\SlotSystem;
821913ab3SNickeauuse ComboStrap\TplUtility;
9007225e5Sgerardnico
10007225e5Sgerardnico/**
11007225e5Sgerardnico * Class action_plugin_combo_hidden
12007225e5Sgerardnico * Hide page
1385e82846SNickeau *
1485e82846SNickeau *
1585e82846SNickeau * More on the official [[doku>config:hidepages|DokuWiki documentation]]
16007225e5Sgerardnico */
17007225e5Sgerardnicoclass action_plugin_combo_hiddenpage extends DokuWiki_Action_Plugin
18007225e5Sgerardnico{
19007225e5Sgerardnico
20007225e5Sgerardnico
2121913ab3SNickeau    const CANONICAL = "";
2221913ab3SNickeau
23007225e5Sgerardnico    public function register(Doku_Event_Handler $controller)
24007225e5Sgerardnico    {
25007225e5Sgerardnico        /**
26007225e5Sgerardnico         * https://www.dokuwiki.org/devel:event:pageutils_id_hidepage
27007225e5Sgerardnico         */
28007225e5Sgerardnico        $controller->register_hook('PAGEUTILS_ID_HIDEPAGE', 'BEFORE', $this, 'handleIsHidden', array());
29007225e5Sgerardnico    }
30007225e5Sgerardnico
31007225e5Sgerardnico    function handleIsHidden(&$event, $param)
32007225e5Sgerardnico    {
33007225e5Sgerardnico        global $conf;
34007225e5Sgerardnico
35007225e5Sgerardnico        /**
3685e82846SNickeau         * Caching the slot and private namespace
37007225e5Sgerardnico         */
38*04fd306cSNickeau        $pattern = "(" . SlotSystem::getSidebarName() . "|" . PluginUtility::COMBOSTRAP_NAMESPACE_NAME;
39*04fd306cSNickeau        $pattern .= "|" . SlotSystem::getPageHeaderSlotName();
40*04fd306cSNickeau        $pattern .= "|" . SlotSystem::getPageFooterSlotName();
41*04fd306cSNickeau        $pattern .= "|" . SlotSystem::getMainSideSlotName();
42*04fd306cSNickeau        $pattern .= "|" . SlotSystem::getMainFooterSlotName();
43*04fd306cSNickeau        $pattern .= "|" . SlotSystem::getMainHeaderSlotName();
44007225e5Sgerardnico        $pattern .= ")";
45007225e5Sgerardnico        if (preg_match('/' . $pattern . '/ui', ':' . $event->data['id'])) {
46007225e5Sgerardnico            $event->data['hidden'] = true;
47007225e5Sgerardnico        }
48007225e5Sgerardnico
49007225e5Sgerardnico    }
50007225e5Sgerardnico
51007225e5Sgerardnico
52007225e5Sgerardnico}
53