1*5773dd37SAnna Dabrowska<?php 2*5773dd37SAnna Dabrowska/** 3*5773dd37SAnna Dabrowska * DokuWiki Plugin acknowledge (Syntax Component) 4*5773dd37SAnna Dabrowska * 5*5773dd37SAnna Dabrowska * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html 6*5773dd37SAnna Dabrowska * @author Andreas Gohr, Anna Dabrowska <dokuwiki@cosmocode.de> 7*5773dd37SAnna Dabrowska */ 8*5773dd37SAnna Dabrowska 9*5773dd37SAnna Dabrowskaclass syntax_plugin_acknowledge_assign extends DokuWiki_Syntax_Plugin 10*5773dd37SAnna Dabrowska{ 11*5773dd37SAnna Dabrowska /** @inheritDoc */ 12*5773dd37SAnna Dabrowska public function getType() 13*5773dd37SAnna Dabrowska { 14*5773dd37SAnna Dabrowska return 'substition'; 15*5773dd37SAnna Dabrowska } 16*5773dd37SAnna Dabrowska 17*5773dd37SAnna Dabrowska /** @inheritDoc */ 18*5773dd37SAnna Dabrowska public function getPType() 19*5773dd37SAnna Dabrowska { 20*5773dd37SAnna Dabrowska return 'block'; 21*5773dd37SAnna Dabrowska } 22*5773dd37SAnna Dabrowska 23*5773dd37SAnna Dabrowska /** @inheritDoc */ 24*5773dd37SAnna Dabrowska public function getSort() 25*5773dd37SAnna Dabrowska { 26*5773dd37SAnna Dabrowska return 155; 27*5773dd37SAnna Dabrowska } 28*5773dd37SAnna Dabrowska 29*5773dd37SAnna Dabrowska /** @inheritDoc */ 30*5773dd37SAnna Dabrowska public function connectTo($mode) 31*5773dd37SAnna Dabrowska { 32*5773dd37SAnna Dabrowska $this->Lexer->addSpecialPattern('~~ACK:.*?~~', $mode, 'plugin_acknowledge_assign'); 33*5773dd37SAnna Dabrowska } 34*5773dd37SAnna Dabrowska 35*5773dd37SAnna Dabrowska 36*5773dd37SAnna Dabrowska /** @inheritDoc */ 37*5773dd37SAnna Dabrowska public function handle($match, $state, $pos, Doku_Handler $handler) 38*5773dd37SAnna Dabrowska { 39*5773dd37SAnna Dabrowska $match = substr($match, 6, -2); 40*5773dd37SAnna Dabrowska return ['assignees' => $match]; 41*5773dd37SAnna Dabrowska } 42*5773dd37SAnna Dabrowska 43*5773dd37SAnna Dabrowska /** @inheritDoc */ 44*5773dd37SAnna Dabrowska public function render($mode, Doku_Renderer $renderer, $data) 45*5773dd37SAnna Dabrowska { 46*5773dd37SAnna Dabrowska global $ID; 47*5773dd37SAnna Dabrowska 48*5773dd37SAnna Dabrowska if ($mode === 'metadata') { 49*5773dd37SAnna Dabrowska /** @var helper_plugin_acknowledge $helper */ 50*5773dd37SAnna Dabrowska $helper = plugin_load('helper', 'acknowledge'); 51*5773dd37SAnna Dabrowska $helper->setAssignees($ID, $data['assignees']); 52*5773dd37SAnna Dabrowska return true; 53*5773dd37SAnna Dabrowska } 54*5773dd37SAnna Dabrowska 55*5773dd37SAnna Dabrowska if ($mode !== 'xhtml') { 56*5773dd37SAnna Dabrowska return false; 57*5773dd37SAnna Dabrowska } 58*5773dd37SAnna Dabrowska 59*5773dd37SAnna Dabrowska // a canvas to render the output to 60*5773dd37SAnna Dabrowska $renderer->doc .= '<div class="plugin-acknowledge-assign">…</div>'; 61*5773dd37SAnna Dabrowska return true; 62*5773dd37SAnna Dabrowska } 63*5773dd37SAnna Dabrowska} 64*5773dd37SAnna Dabrowska 65