15773dd37SAnna Dabrowska<?php 2*3b76424dSannda 3*3b76424dSanndause dokuwiki\Extension\SyntaxPlugin; 4*3b76424dSannda 55773dd37SAnna Dabrowska/** 65773dd37SAnna Dabrowska * DokuWiki Plugin acknowledge (Syntax Component) 75773dd37SAnna Dabrowska * 85773dd37SAnna Dabrowska * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html 95773dd37SAnna Dabrowska * @author Andreas Gohr, Anna Dabrowska <dokuwiki@cosmocode.de> 105773dd37SAnna Dabrowska */ 11*3b76424dSanndaclass syntax_plugin_acknowledge_assign extends SyntaxPlugin 125773dd37SAnna Dabrowska{ 135773dd37SAnna Dabrowska /** @inheritDoc */ 145773dd37SAnna Dabrowska public function getType() 155773dd37SAnna Dabrowska { 165773dd37SAnna Dabrowska return 'substition'; 175773dd37SAnna Dabrowska } 185773dd37SAnna Dabrowska 195773dd37SAnna Dabrowska /** @inheritDoc */ 205773dd37SAnna Dabrowska public function getPType() 215773dd37SAnna Dabrowska { 225773dd37SAnna Dabrowska return 'block'; 235773dd37SAnna Dabrowska } 245773dd37SAnna Dabrowska 255773dd37SAnna Dabrowska /** @inheritDoc */ 265773dd37SAnna Dabrowska public function getSort() 275773dd37SAnna Dabrowska { 285773dd37SAnna Dabrowska return 155; 295773dd37SAnna Dabrowska } 305773dd37SAnna Dabrowska 315773dd37SAnna Dabrowska /** @inheritDoc */ 325773dd37SAnna Dabrowska public function connectTo($mode) 335773dd37SAnna Dabrowska { 345773dd37SAnna Dabrowska $this->Lexer->addSpecialPattern('~~ACK:.*?~~', $mode, 'plugin_acknowledge_assign'); 355773dd37SAnna Dabrowska } 365773dd37SAnna Dabrowska 375773dd37SAnna Dabrowska 385773dd37SAnna Dabrowska /** @inheritDoc */ 395773dd37SAnna Dabrowska public function handle($match, $state, $pos, Doku_Handler $handler) 405773dd37SAnna Dabrowska { 415773dd37SAnna Dabrowska $match = substr($match, 6, -2); 425773dd37SAnna Dabrowska return ['assignees' => $match]; 435773dd37SAnna Dabrowska } 445773dd37SAnna Dabrowska 455773dd37SAnna Dabrowska /** @inheritDoc */ 465773dd37SAnna Dabrowska public function render($mode, Doku_Renderer $renderer, $data) 475773dd37SAnna Dabrowska { 485773dd37SAnna Dabrowska global $ID; 495773dd37SAnna Dabrowska 505773dd37SAnna Dabrowska if ($mode === 'metadata') { 515773dd37SAnna Dabrowska /** @var helper_plugin_acknowledge $helper */ 525773dd37SAnna Dabrowska $helper = plugin_load('helper', 'acknowledge'); 53f09444ffSAndreas Gohr $helper->setPageAssignees($ID, $data['assignees']); 545773dd37SAnna Dabrowska return true; 555773dd37SAnna Dabrowska } 565773dd37SAnna Dabrowska 575773dd37SAnna Dabrowska if ($mode !== 'xhtml') { 585773dd37SAnna Dabrowska return false; 595773dd37SAnna Dabrowska } 605773dd37SAnna Dabrowska 615773dd37SAnna Dabrowska // a canvas to render the output to 625773dd37SAnna Dabrowska $renderer->doc .= '<div class="plugin-acknowledge-assign">…</div>'; 635773dd37SAnna Dabrowska return true; 645773dd37SAnna Dabrowska } 655773dd37SAnna Dabrowska} 66