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