xref: /plugin/acknowledge/syntax/assign.php (revision 3b76424d6eb7c7bbbc55197a36eab33cd6e9cf20)
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