xref: /plugin/combo/action/hiddenpage.php (revision 007225e5fb2d3f64edaccd3bd447ca26effb9d68)
1*007225e5Sgerardnico<?php
2*007225e5Sgerardnico
3*007225e5Sgerardnico
4*007225e5Sgerardnicouse ComboStrap\PluginUtility;
5*007225e5Sgerardnicouse ComboStrap\TplConstant;
6*007225e5Sgerardnico
7*007225e5Sgerardnico/**
8*007225e5Sgerardnico * Class action_plugin_combo_hidden
9*007225e5Sgerardnico * Hide page
10*007225e5Sgerardnico */
11*007225e5Sgerardnicoclass action_plugin_combo_hiddenpage extends DokuWiki_Action_Plugin
12*007225e5Sgerardnico{
13*007225e5Sgerardnico
14*007225e5Sgerardnico
15*007225e5Sgerardnico    public function register(Doku_Event_Handler $controller)
16*007225e5Sgerardnico    {
17*007225e5Sgerardnico        /**
18*007225e5Sgerardnico         * https://www.dokuwiki.org/devel:event:pageutils_id_hidepage
19*007225e5Sgerardnico         */
20*007225e5Sgerardnico        $controller->register_hook('PAGEUTILS_ID_HIDEPAGE', 'BEFORE', $this, 'handleIsHidden', array());
21*007225e5Sgerardnico    }
22*007225e5Sgerardnico
23*007225e5Sgerardnico    function handleIsHidden(&$event, $param)
24*007225e5Sgerardnico    {
25*007225e5Sgerardnico        global $conf;
26*007225e5Sgerardnico
27*007225e5Sgerardnico        /**
28*007225e5Sgerardnico         * Caching the strap bars and private namespace
29*007225e5Sgerardnico         */
30*007225e5Sgerardnico        $pattern = "(" . $conf['sidebar'] . "|" . PluginUtility::COMBOSTRAP_NAMESPACE_NAME;
31*007225e5Sgerardnico        if ($conf['template'] == PluginUtility::TEMPLATE_STRAP_NAME) {
32*007225e5Sgerardnico            $constantFile = __DIR__ . '/../../../tpl/strap/class/TplConstant.php';
33*007225e5Sgerardnico            if (file_exists($constantFile)) {
34*007225e5Sgerardnico                /** @noinspection PhpIncludeInspection */
35*007225e5Sgerardnico                require_once($constantFile);
36*007225e5Sgerardnico                $footer = tpl_getConf(TplConstant::CONF_FOOTER);
37*007225e5Sgerardnico                $sidekick = tpl_getConf(TplConstant::CONF_SIDEKICK);
38*007225e5Sgerardnico                $header = tpl_getConf(TplConstant::CONF_HEADER);
39*007225e5Sgerardnico                $pattern .= "|" . $footer . "|" . $sidekick . "|" . $header;
40*007225e5Sgerardnico            }
41*007225e5Sgerardnico        }
42*007225e5Sgerardnico        $pattern .= ")";
43*007225e5Sgerardnico        if (preg_match('/' . $pattern . '/ui', ':' . $event->data['id'])) {
44*007225e5Sgerardnico            $event->data['hidden'] = true;
45*007225e5Sgerardnico        }
46*007225e5Sgerardnico
47*007225e5Sgerardnico    }
48*007225e5Sgerardnico
49*007225e5Sgerardnico
50*007225e5Sgerardnico}
51