xref: /plugin/vshare/syntax/debug.php (revision b82f24af674525b493dac939915358a71279a32e)
1<?php
2/**
3 * DokuWiki Plugin vshare (Syntax Component)
4 *
5 * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
6 * @author  Andreas Gohr <andi@splitbrain.org>
7 */
8class syntax_plugin_vshare_debug extends \dokuwiki\Extension\SyntaxPlugin
9{
10    /** @inheritDoc */
11    public function getType()
12    {
13        return 'substition';
14    }
15
16    /** @inheritDoc */
17    public function getPType()
18    {
19        return 'block';
20    }
21
22    /** @inheritDoc */
23    public function getSort()
24    {
25        return 155;
26    }
27
28    /** @inheritDoc */
29    public function connectTo($mode)
30    {
31        if($this->getConf('debug')) {
32            $this->Lexer->addSpecialPattern('~~vshare-debug~~', $mode, 'plugin_vshare_debug');
33        }
34
35    }
36
37    /** @inheritDoc */
38    public function handle($match, $state, $pos, Doku_Handler $handler)
39    {
40        return [];
41    }
42
43    /** @inheritDoc */
44    public function render($mode, Doku_Renderer $renderer, $handlerdata)
45    {
46        if ($mode !== 'xhtml') {
47            return false;
48        }
49
50        $sites = helper_plugin_vshare::loadSites();
51        $syntax = new syntax_plugin_vshare_video();
52        $handler = new \Doku_Handler();
53
54
55        $renderer->header('vshare sites', 1, 0);
56
57        foreach ($sites as $site => $info) {
58            $renderer->header($site, 2, 0);
59
60            if(!empty($info['vid'])) {
61                $data = $syntax->handle("{{ $site>{$info['vid']} }}", DOKU_LEXER_MATCHED, 0, $handler);
62                $syntax->render($mode, $renderer, $data);
63            } else {
64                $renderer->p_open();
65                $renderer->smiley('FIXME');
66                $renderer->cdata(' No sample video ID available');
67                $renderer->p_close();
68            }
69
70            if(!empty($info['web'])) {
71                $renderer->p_open();
72                $renderer->externallink($info['web']);
73                $renderer->p_close();
74            } else {
75                $renderer->p_open();
76                $renderer->smiley('FIXME');
77                $renderer->cdata(' No sample video available');
78                $renderer->p_close();
79            }
80
81        }
82
83        return true;
84    }
85}
86
87