xref: /plugin/structpublish/action/banner.php (revision 871068513738e2832d0b57dbff724df27f613c49)
1*87106851SAnna Dabrowska<?php
2*87106851SAnna Dabrowska
3*87106851SAnna Dabrowska/**
4*87106851SAnna Dabrowska * Action component responsible for the publish banner
5*87106851SAnna Dabrowska * attached to struct data of a page
6*87106851SAnna Dabrowska */
7*87106851SAnna Dabrowskaclass action_plugin_structpublish_banner extends DokuWiki_Action_Plugin
8*87106851SAnna Dabrowska{
9*87106851SAnna Dabrowska    /**
10*87106851SAnna Dabrowska     * @inheritDoc
11*87106851SAnna Dabrowska     */
12*87106851SAnna Dabrowska    public function register(Doku_Event_Handler $controller)
13*87106851SAnna Dabrowska    {
14*87106851SAnna Dabrowska        $controller->register_hook('PLUGIN_STRUCT_RENDER_SCHEMA_DATA', 'AFTER', $this, 'renderBanner');
15*87106851SAnna Dabrowska    }
16*87106851SAnna Dabrowska
17*87106851SAnna Dabrowska    /**
18*87106851SAnna Dabrowska     * Add banner to struct data of a page
19*87106851SAnna Dabrowska     *
20*87106851SAnna Dabrowska     * @return bool
21*87106851SAnna Dabrowska     */
22*87106851SAnna Dabrowska    public function renderBanner(Doku_Event $event)
23*87106851SAnna Dabrowska    {
24*87106851SAnna Dabrowska        $data = $event->data;
25*87106851SAnna Dabrowska        if (!$data['hasdata'] || $data['format'] !== 'xhtml') return true;
26*87106851SAnna Dabrowska
27*87106851SAnna Dabrowska        $renderer = $data['renderer'];
28*87106851SAnna Dabrowska        $html = $this->getBannerHtml();
29*87106851SAnna Dabrowska        $renderer->doc .= $html;
30*87106851SAnna Dabrowska
31*87106851SAnna Dabrowska        return true;
32*87106851SAnna Dabrowska    }
33*87106851SAnna Dabrowska
34*87106851SAnna Dabrowska    /**
35*87106851SAnna Dabrowska     * @return string
36*87106851SAnna Dabrowska     */
37*87106851SAnna Dabrowska    protected function getBannerHtml()
38*87106851SAnna Dabrowska    {
39*87106851SAnna Dabrowska        global $ID;
40*87106851SAnna Dabrowska        $user = $_SERVER['REMOTE_USER'];
41*87106851SAnna Dabrowska        $html = '';
42*87106851SAnna Dabrowska
43*87106851SAnna Dabrowska        /** @var \helper_plugin_structpublish_permissions $permissonsHelper */
44*87106851SAnna Dabrowska        $permissonsHelper = plugin_load('helper', 'structpublish_permissions');
45*87106851SAnna Dabrowska        if ($permissonsHelper->isPublisher($ID, $user)) {
46*87106851SAnna Dabrowska            $html .= 'YOU MAY!';
47*87106851SAnna Dabrowska        }
48*87106851SAnna Dabrowska
49*87106851SAnna Dabrowska        return $html;
50*87106851SAnna Dabrowska    }
51*87106851SAnna Dabrowska}
52