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