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