A bare bones front-end for knockout designed for maximum compatibility with "obsolete" browsers
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

69 行
2.4KB

  1. <?php
  2. namespace App\BbCode;
  3. use JBBCode\CodeDefinitionSet;
  4. use JBBCode\CodeDefinitionBuilder;
  5. class KnockoutDefinitionSet implements CodeDefinitionSet
  6. {
  7. /** @var CodeDefinition[] The default code definitions in this set. */
  8. protected $definitions = array();
  9. /**
  10. * Constructs the default code definitions.
  11. */
  12. public function __construct()
  13. {
  14. /* [b] bold tag */
  15. $builder = new CodeDefinitionBuilder('b', '<strong>{param}</strong>');
  16. $this->definitions[] = $builder->build();
  17. /* [i] italics tag */
  18. $builder = new CodeDefinitionBuilder('i', '<em>{param}</em>');
  19. $this->definitions[] = $builder->build();
  20. /* [u] underline tag */
  21. $builder = new CodeDefinitionBuilder('u', '<u>{param}</u>');
  22. $this->definitions[] = $builder->build();
  23. $urlValidator = new \JBBCode\validators\UrlValidator();
  24. /* [url] link tag */
  25. $builder = new CodeDefinitionBuilder('url', '<a href="{param}">{param}</a>');
  26. $builder->setParseContent(false)->setBodyValidator($urlValidator);
  27. $this->definitions[] = $builder->build();
  28. /* [url=http://example.com] link tag */
  29. $builder = new CodeDefinitionBuilder('url', '<a href="{option}">{param}</a>');
  30. $builder->setUseOption(true)->setParseContent(true)->setOptionValidator($urlValidator);
  31. $this->definitions[] = $builder->build();
  32. /* [img] image tag */
  33. $builder = new CodeDefinitionBuilder('img', '<img src="{param}" />');
  34. $builder->setUseOption(false)->setParseContent(false)->setBodyValidator($urlValidator);
  35. $this->definitions[] = $builder->build();
  36. /* [img=alt text] image tag */
  37. $builder = new CodeDefinitionBuilder('img', '<img src="{param}" alt="{option}" />');
  38. $builder->setUseOption(true)->setParseContent(false)->setBodyValidator($urlValidator);
  39. $this->definitions[] = $builder->build();
  40. /* [color] color tag */
  41. $builder = new CodeDefinitionBuilder('color', '<span style="color: {option}">{param}</span>');
  42. $builder->setUseOption(true)->setOptionValidator(new \JBBCode\validators\CssColorValidator());
  43. $this->definitions[] = $builder->build();
  44. }
  45. /**
  46. * Returns an array of the default code definitions.
  47. *
  48. * @return CodeDefinition[]
  49. */
  50. public function getCodeDefinitions()
  51. {
  52. return $this->definitions;
  53. }
  54. }