xref: /plugin/embeddedphp/syntax/phpblock.php (revision 2e6b7ea4117ded4a34daa46921eb2174d59cd3d6)
1*2e6b7ea4Sfiwswe<?php
2*2e6b7ea4Sfiwswe/**
3*2e6b7ea4Sfiwswe * DokuWiki Plugin embeddedphp (Syntax Component)
4*2e6b7ea4Sfiwswe *
5*2e6b7ea4Sfiwswe * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
6*2e6b7ea4Sfiwswe * @author  fiwswe <dwplugin@fwml.de>
7*2e6b7ea4Sfiwswe */
8*2e6b7ea4Sfiwsweclass syntax_plugin_embeddedphp_phpblock extends syntax_plugin_embeddedphp_phpinline
9*2e6b7ea4Sfiwswe{
10*2e6b7ea4Sfiwswe    /** @inheritDoc */
11*2e6b7ea4Sfiwswe    public function GetTag(): string
12*2e6b7ea4Sfiwswe    {
13*2e6b7ea4Sfiwswe    	return 'PHP';
14*2e6b7ea4Sfiwswe    }
15*2e6b7ea4Sfiwswe
16*2e6b7ea4Sfiwswe    /** @inheritDoc */
17*2e6b7ea4Sfiwswe    public function getPType()
18*2e6b7ea4Sfiwswe    {
19*2e6b7ea4Sfiwswe        return 'block';
20*2e6b7ea4Sfiwswe    }
21*2e6b7ea4Sfiwswe
22*2e6b7ea4Sfiwswe    /** @inheritDoc */
23*2e6b7ea4Sfiwswe    public function render($mode, Doku_Renderer $renderer, $data)
24*2e6b7ea4Sfiwswe    {
25*2e6b7ea4Sfiwswe        if ($mode === 'xhtml') {
26*2e6b7ea4Sfiwswe            if (is_array($data) && (count($data) > 1)) {
27*2e6b7ea4Sfiwswe                $this->phpblock($data[1], $renderer);
28*2e6b7ea4Sfiwswe
29*2e6b7ea4Sfiwswe                return true;
30*2e6b7ea4Sfiwswe            }
31*2e6b7ea4Sfiwswe        }
32*2e6b7ea4Sfiwswe
33*2e6b7ea4Sfiwswe        return false;
34*2e6b7ea4Sfiwswe    }
35*2e6b7ea4Sfiwswe
36*2e6b7ea4Sfiwswe    /**
37*2e6b7ea4Sfiwswe     * Output block level PHP code
38*2e6b7ea4Sfiwswe     *
39*2e6b7ea4Sfiwswe     * If $conf['phpok'] is true this should evaluate the given code and append the result
40*2e6b7ea4Sfiwswe     * to $doc
41*2e6b7ea4Sfiwswe     *
42*2e6b7ea4Sfiwswe     * @param string $text The PHP code
43*2e6b7ea4Sfiwswe     * @param  Doku_Renderer $renderer   Renderer used for output
44*2e6b7ea4Sfiwswe     */
45*2e6b7ea4Sfiwswe    public function phpblock($text, Doku_Renderer $renderer): void {
46*2e6b7ea4Sfiwswe        $this->php($text, $renderer, 'pre');
47*2e6b7ea4Sfiwswe    }
48*2e6b7ea4Sfiwswe
49*2e6b7ea4Sfiwswe    /** @inheritDoc */
50*2e6b7ea4Sfiwswe    public function isBlockElement(): bool
51*2e6b7ea4Sfiwswe    {
52*2e6b7ea4Sfiwswe    	return true;
53*2e6b7ea4Sfiwswe    }
54*2e6b7ea4Sfiwswe}
55*2e6b7ea4Sfiwswe
56