A bare bones front-end for knockout designed for maximum compatibility with "obsolete" browsers
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.

32 lines
721B

  1. <?php
  2. namespace App\BbCode\Tag;
  3. use Knockout\BbCode\Tag\TagInterface;
  4. use Knockout\BbCode\Tokenizer\Tag as TokenTag;
  5. class Image implements TagInterface
  6. {
  7. public function format(TokenTag $tokenTag): string
  8. {
  9. $link = $tokenTag->getText();
  10. if (!preg_match('!^https?://[a-z0-9\-@:.,_&+%#?/=]+$!i', $link)) {
  11. $unknownTag = new Unknown();
  12. return $unknownTag->format($tokenTag);
  13. }
  14. return '<img src="' . $link . '" />';
  15. }
  16. public function getName(): string
  17. {
  18. return 'img';
  19. }
  20. public function getOriginalText(TokenTag $tokenTag): string
  21. {
  22. return "[{$this->getName()}]{$tokenTag->getText()}[/{$this->getName()}";
  23. }
  24. }