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