You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

87 lines
2.1 KiB

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