@@ -4,15 +4,14 @@ | |||||
"description": "php parser for bb code", | "description": "php parser for bb code", | ||||
"license": "MIT", | "license": "MIT", | ||||
"require": { | "require": { | ||||
"php": ">=7.0", | |||||
"tekstove/url-video-parser": "^1.0.1" | |||||
"php": ">=7.0" | |||||
}, | }, | ||||
"require-dev": { | "require-dev": { | ||||
"phpUnit/phpUnit": "5.6.*" | "phpUnit/phpUnit": "5.6.*" | ||||
}, | }, | ||||
"autoload": { | "autoload": { | ||||
"psr-0": { | "psr-0": { | ||||
"Potaka": "src/" | |||||
"Knockout": "src/" | |||||
} | } | ||||
} | } | ||||
} | } |
@@ -1,14 +1,14 @@ | |||||
<?php | <?php | ||||
namespace Potaka\BbCode; | |||||
namespace Knockout\BbCode; | |||||
use Potaka\BbCode\Tag\TagInterface; | |||||
use Knockout\BbCode\Tag\TagInterface; | |||||
use Potaka\BbCode\Tokenizer\Tag as TokenTag; | |||||
use Potaka\BbCode\TagBag\TagBag; | |||||
use Knockout\BbCode\Tokenizer\Tag as TokenTag; | |||||
use Knockout\BbCode\TagBag\TagBag; | |||||
use Potaka\BbCode\Tag\TextTag; | |||||
use Potaka\BbCode\Tag\UnknownSimpleType; | |||||
use Knockout\BbCode\Tag\TextTag; | |||||
use Knockout\BbCode\Tag\UnknownSimpleType; | |||||
/** | /** | ||||
* Format tokens to html | * Format tokens to html |
@@ -1,6 +1,6 @@ | |||||
<?php | <?php | ||||
namespace Potaka\BbCode; | |||||
namespace Knockout\BbCode; | |||||
/** | /** | ||||
* @author po_taka <angel.koilov@gmail.com> | * @author po_taka <angel.koilov@gmail.com> |
@@ -1,15 +1,15 @@ | |||||
<?php | <?php | ||||
namespace Potaka\BbCode; | |||||
namespace Knockout\BbCode; | |||||
use Potaka\BbCode\Tag\Bold; | |||||
use Potaka\BbCode\Tag\Underline; | |||||
use Potaka\BbCode\Tag\Italic; | |||||
use Knockout\BbCode\Tag\Bold; | |||||
use Knockout\BbCode\Tag\Underline; | |||||
use Knockout\BbCode\Tag\Italic; | |||||
use Potaka\BbCode\Tag\Link; | |||||
use Potaka\BbCode\Tag\ImgTag; | |||||
use Knockout\BbCode\Tag\Link; | |||||
use Knockout\BbCode\Tag\ImgTag; | |||||
use Potaka\BbCode\Tag\YoutubeTag; | |||||
use Knockout\BbCode\Tag\YoutubeTag; | |||||
/** | /** | ||||
* Create different BbCode configurations | * Create different BbCode configurations |
@@ -1,6 +1,6 @@ | |||||
<?php | <?php | ||||
namespace Potaka\BbCode\Tag; | |||||
namespace Knockout\BbCode\Tag; | |||||
/** | /** | ||||
* Description of bold | * Description of bold |
@@ -1,13 +1,13 @@ | |||||
<?php | <?php | ||||
namespace Potaka\BbCode\Tag; | |||||
namespace Knockout\BbCode\Tag; | |||||
/** | /** | ||||
* Description of Exception | * Description of Exception | ||||
* | * | ||||
* @author potaka | * @author potaka | ||||
*/ | */ | ||||
class Exception extends \Potaka\BbCode\Exception | |||||
class Exception extends \Knockout\BbCode\Exception | |||||
{ | { | ||||
//put your code here | //put your code here | ||||
} | } |
@@ -1,8 +1,8 @@ | |||||
<?php | <?php | ||||
namespace Potaka\BbCode\Tag; | |||||
namespace Knockout\BbCode\Tag; | |||||
use Potaka\BbCode\Tokenizer\Tag as TokenTag; | |||||
use Knockout\BbCode\Tokenizer\Tag as TokenTag; | |||||
/** | /** | ||||
* ImgTag | * ImgTag |
@@ -1,6 +1,6 @@ | |||||
<?php | <?php | ||||
namespace Potaka\BbCode\Tag; | |||||
namespace Knockout\BbCode\Tag; | |||||
/** | /** | ||||
* Description of Italic | * Description of Italic |
@@ -1,8 +1,8 @@ | |||||
<?php | <?php | ||||
namespace Potaka\BbCode\Tag; | |||||
namespace Knockout\BbCode\Tag; | |||||
use Potaka\BbCode\Tokenizer\Tag as TokenTag; | |||||
use Knockout\BbCode\Tokenizer\Tag as TokenTag; | |||||
/** | /** | ||||
* @author po_taka <angel.koilov@gmail.com> | * @author po_taka <angel.koilov@gmail.com> |
@@ -1,8 +1,8 @@ | |||||
<?php | <?php | ||||
namespace Potaka\BbCode\Tag; | |||||
namespace Knockout\BbCode\Tag; | |||||
use Potaka\BbCode\Tokenizer\Tag as TokenTag; | |||||
use Knockout\BbCode\Tokenizer\Tag as TokenTag; | |||||
/** | /** | ||||
* @author po_taka <angel.koilov@gmail.com> | * @author po_taka <angel.koilov@gmail.com> |
@@ -1,8 +1,8 @@ | |||||
<?php | <?php | ||||
namespace Potaka\BbCode\Tag; | |||||
namespace Knockout\BbCode\Tag; | |||||
use Potaka\BbCode\Tokenizer\Tag as TokenTag; | |||||
use Knockout\BbCode\Tokenizer\Tag as TokenTag; | |||||
/** | /** | ||||
* | * |
@@ -1,8 +1,8 @@ | |||||
<?php | <?php | ||||
namespace Potaka\BbCode\Tag; | |||||
namespace Knockout\BbCode\Tag; | |||||
use Potaka\BbCode\Tokenizer\Tag as TokenTag; | |||||
use Knockout\BbCode\Tokenizer\Tag as TokenTag; | |||||
/** | /** | ||||
* Description of TextTag | * Description of TextTag |
@@ -1,6 +1,6 @@ | |||||
<?php | <?php | ||||
namespace Potaka\BbCode\Tag; | |||||
namespace Knockout\BbCode\Tag; | |||||
/** | /** | ||||
* @author po_taka | * @author po_taka |
@@ -1,8 +1,8 @@ | |||||
<?php | <?php | ||||
namespace Potaka\BbCode\Tag; | |||||
namespace Knockout\BbCode\Tag; | |||||
use Potaka\BbCode\Tokenizer\Tag as TokenTag; | |||||
use Knockout\BbCode\Tokenizer\Tag as TokenTag; | |||||
/** | /** | ||||
* Description of UnknownSimpleType | * Description of UnknownSimpleType |
@@ -1,8 +1,8 @@ | |||||
<?php | <?php | ||||
namespace Potaka\BbCode\TagBag; | |||||
namespace Knockout\BbCode\TagBag; | |||||
use Potaka\BbCode\Tag\TagInterface; | |||||
use Knockout\BbCode\Tag\TagInterface; | |||||
/** | /** | ||||
* Container for Tags | * Container for Tags |
@@ -1,6 +1,6 @@ | |||||
<?php | <?php | ||||
namespace Potaka\BbCode\Tokenizer; | |||||
namespace Knockout\BbCode\Tokenizer; | |||||
/** | /** | ||||
* @author po_taka <angel.koilov@gmail.com> | * @author po_taka <angel.koilov@gmail.com> |
@@ -1,6 +1,6 @@ | |||||
<?php | <?php | ||||
namespace Potaka\BbCode\Tokenizer; | |||||
namespace Knockout\BbCode\Tokenizer; | |||||
/** | /** | ||||
* Transform text into tokens for bbcode | * Transform text into tokens for bbcode |
@@ -1,40 +0,0 @@ | |||||
<?php | |||||
namespace Potaka\BbCode\Tag; | |||||
use Potaka\BbCode\Tokenizer\Tag as TokenTag; | |||||
use Tekstove\UrlVideoParser\Youtube\YoutubeParser; | |||||
use Tekstove\UrlVideoParser\Youtube\YoutubeException; | |||||
/** | |||||
* Tag for youtube videos | |||||
* | |||||
* @author po_taka <angel.koilov@gmail.com> | |||||
*/ | |||||
class YoutubeTag implements TagInterface | |||||
{ | |||||
public function format(TokenTag $tokenTag): string | |||||
{ | |||||
$link = $tokenTag->getText(); | |||||
try { | |||||
$parser = new YoutubeParser(); | |||||
$videoId = $parser->getId($link); | |||||
} catch (YoutubeException $e) { | |||||
$unknownTag = new UnknownSimpleType(); | |||||
return $unknownTag->format($tokenTag); | |||||
} | |||||
return '<iframe src="https://www.youtube.com/embed/' . $videoId . '" frameborder="0" allowfullscreen></iframe>'; | |||||
} | |||||
public function getName(): string | |||||
{ | |||||
return 'youtube'; | |||||
} | |||||
public function getOriginalText(TokenTag $tokenTag): string | |||||
{ | |||||
return "[{$this->getName()}]{$tokenTag->getText()}[/{$this->getName()}"; | |||||
} | |||||
} |