コード例 #1
0
 /**
  * @inheritdoc
  */
 public function __construct()
 {
     parent::__construct();
     /* [quote] blockquote tag */
     $builder = new CodeDefinitionBuilder('quote', '<blockquote><p>{param}</p></blockquote>');
     array_push($this->definitions, $builder->build());
     /* [p] paragraph tag */
     $builder = new CodeDefinitionBuilder('p', '<p>{param}</p>');
     array_push($this->definitions, $builder->build());
     /* [h=1|2|3|4|5|6] header tag */
     $builder = new CodeDefinitionBuilder('h', '<h{option}>{param}</h{option}>');
     $builder->setUseOption(true)->setOptionValidator(new NumberValidator(['integerOnly' => true, 'min' => 1, 'max' => 6]));
     array_push($this->definitions, $builder->build());
     /* [center] align text by center */
     $builder = new CodeDefinitionBuilder('center', '<div style="text-align: center">{param}</div>');
     array_push($this->definitions, $builder->build());
     /* [left] align text by left of edge */
     $builder = new CodeDefinitionBuilder('left', '<div style="text-align: left">{param}</div>');
     array_push($this->definitions, $builder->build());
     /* [right] align text by right of edge */
     $builder = new CodeDefinitionBuilder('right', '<div style="text-align: right">{param}</div>');
     array_push($this->definitions, $builder->build());
     /* [hr] separate, horizontal line */
     $builder = new CodeDefinitionBuilder('hr', '<hr />');
     $builder->setParseContent(false);
     array_push($this->definitions, $builder->build());
     /* [list] with marker */
     array_push($this->definitions, new ListMarkerCodeDefinition());
     /* [list=1] with number */
     array_push($this->definitions, new ListNumberCodeDefinition());
     /* [table] table */
     array_push($this->definitions, new TableCodeDefinition());
 }
コード例 #2
0
ファイル: DefaultSet.php プロジェクト: youthweb/bbcode-parser
 /**
  * Definiert die Definitionen
  *
  * @return void
  */
 public function __construct(Config $config)
 {
     /* [b] bold tag */
     $builder = new CodeDefinitionBuilder('b', '<b>{param}</b>');
     array_push($this->definitions, $builder->build());
     // Depreacated [F] tag
     $builder->setTagName('F');
     array_push($this->definitions, $builder->build());
     /* [i] italics tag */
     $builder = new CodeDefinitionBuilder('i', '<i>{param}</i>');
     array_push($this->definitions, $builder->build());
     // Depreacated [K] tag
     $builder->setTagName('K');
     array_push($this->definitions, $builder->build());
     /* [u] underline tag */
     $builder = new CodeDefinitionBuilder('u', '<u>{param}</u>');
     array_push($this->definitions, $builder->build());
     /* [code] code tag */
     array_push($this->definitions, new Definition\Code());
     /* [noparse] noparse tag */
     array_push($this->definitions, new Definition\Noparse());
     /* [list] list tag */
     array_push($this->definitions, new Definition\ListDefinition());
     array_push($this->definitions, new Definition\ListOption());
     /* [q] quote tag */
     array_push($this->definitions, new Definition\Q());
     array_push($this->definitions, new Definition\QOption());
     array_push($this->definitions, new Definition\Quote());
     array_push($this->definitions, new Definition\QuoteOption());
     // Deprecated Z tag
     array_push($this->definitions, new Definition\Z());
     array_push($this->definitions, new Definition\ZOption());
     /* [email] email tag */
     array_push($this->definitions, new Definition\Email($config));
     array_push($this->definitions, new Definition\EmailOption($config));
     /* [url] url tag */
     array_push($this->definitions, new Definition\Url($config));
     array_push($this->definitions, new Definition\UrlOption($config));
     array_push($this->definitions, new Definition\YwlinkOption($config));
     /* [img] image tag */
     array_push($this->definitions, new Definition\Image($config));
     array_push($this->definitions, new Definition\Pic($config));
     /* [v] video tag */
     array_push($this->definitions, new Definition\V($config));
     array_push($this->definitions, new Definition\Video($config));
     array_push($this->definitions, new Definition\Youtube($config));
     /* [color] color tag */
     array_push($this->definitions, new Definition\Color($config));
     array_push($this->definitions, new Definition\ColorOption($config));
     /* [size] size tag */
     array_push($this->definitions, new Definition\Size($config));
     array_push($this->definitions, new Definition\SizeOption($config));
 }
コード例 #3
0
 /**
  * Definiert die Definitionen
  *
  * @return void
  */
 public function __construct(Config $config)
 {
     /* [h1] headline 1 tag */
     $builder = new CodeDefinitionBuilder('h1', '<!-- no_p --><h1>{param}</h1><!-- no_p -->');
     array_push($this->definitions, $builder->build());
     /* [h2] headline 2 tag */
     $builder = new CodeDefinitionBuilder('h2', '<!-- no_p --><h2>{param}</h2><!-- no_p -->');
     array_push($this->definitions, $builder->build());
     /* [h3] headline 3 tag */
     $builder = new CodeDefinitionBuilder('h3', '<!-- no_p --><h3>{param}</h3><!-- no_p -->');
     array_push($this->definitions, $builder->build());
     /* [h4] headline 4 tag */
     $builder = new CodeDefinitionBuilder('h4', '<!-- no_p --><h4>{param}</h4><!-- no_p -->');
     array_push($this->definitions, $builder->build());
     /* [h5] headline 5 tag */
     $builder = new CodeDefinitionBuilder('h5', '<!-- no_p --><h5>{param}</h5><!-- no_p -->');
     array_push($this->definitions, $builder->build());
     /* [h6] headline 6 tag */
     $builder = new CodeDefinitionBuilder('h6', '<!-- no_p --><h6>{param}</h6><!-- no_p -->');
     array_push($this->definitions, $builder->build());
 }
コード例 #4
0
ファイル: Parser.php プロジェクト: jensdoecke/responsive-pot
 /**
  * Adds a simple (text-replacement only) bbcode definition
  *
  * @param string  $tagName      the tag name of the code (for example the b in [b])
  * @param string  $replace      the html to use, with {param} and optionally {option} for replacements
  * @param boolean $useOption    whether or not this bbcode uses the secondary {option} replacement
  * @param boolean $parseContent whether or not to parse the content within these elements
  * @param integer $nestLimit    an optional limit of the number of elements of this kind that can be nested within
  *                              each other before the parser stops parsing them.
  * @param InputValidator $optionValidator   the validator to run {option} through
  * @param BodyValidator  $bodyValidator     the validator to run {param} through (only used if $parseContent == false)
  */
 public function addBBCode($tagName, $replace, $useOption = false, $parseContent = true, $nestLimit = -1, InputValidator $optionValidator = null, InputValidator $bodyValidator = null)
 {
     $builder = new CodeDefinitionBuilder($tagName, $replace);
     $builder->setUseOption($useOption);
     $builder->setParseContent($parseContent);
     $builder->setNestLimit($nestLimit);
     if ($optionValidator) {
         $builder->setOptionValidator($optionValidator);
     }
     if ($bodyValidator) {
         $builder->setBodyValidator($bodyValidator);
     }
     $this->addCodeDefinition($builder->build());
 }
コード例 #5
0
 public static function parseBBCode($str)
 {
     $validator = new htmlValidator();
     $parser = new BBCodeParser();
     $parser->addCodeDefinitionSet(new \JBBCode\DefaultCodeDefinitionSet());
     /* [s] <strike> */
     $builder = new BBCodeBuilder('s', '<strike>{param}</strike>');
     $parser->addCodeDefinition($builder->build());
     /* [pre] <pre> */
     $builder = new BBCodeBuilder('pre', '<pre>{param}</pre>');
     $parser->addCodeDefinition($builder->build());
     /* [pre] <pre> */
     $builder = new BBCodeBuilder('sup', '<sup>{param}</sup>');
     $parser->addCodeDefinition($builder->build());
     /* [pre] <pre> */
     $builder = new BBCodeBuilder('sub', '<sub>{param}</sub>');
     $parser->addCodeDefinition($builder->build());
     /* [li] <li> */
     $builder = new BBCodeBuilder('li', '<li>{param}</li>');
     $parser->addCodeDefinition($builder->build());
     $builder = new BBCodeBuilder('list', '<ul>{param}</ul>');
     $builder->setUseOption(false)->setParseContent(true);
     $parser->addCodeDefinition($builder->build());
     $builder = new BBCodeBuilder('list', '<ol>{param}</ol>');
     $builder->setUseOption(true)->setParseContent(true);
     $parser->addCodeDefinition($builder->build());
     /* [move] <marquee> */
     $builder = new BBCodeBuilder('move', '<marquee>{param}</marquee>');
     $parser->addCodeDefinition($builder->build());
     /* [center] <div text-align: center> */
     $builder = new BBCodeBuilder('center', '<div style="text-align: center">{param}</div>');
     $parser->addCodeDefinition($builder->build());
     /* [left] <div text-align: left> */
     $builder = new BBCodeBuilder('left', '<div style="text-align: left">{param}</div>');
     $parser->addCodeDefinition($builder->build());
     /* [right] <div text-align: right> */
     $builder = new BBCodeBuilder('right', '<div style="text-align: right">{param}</div>');
     $parser->addCodeDefinition($builder->build());
     $parser->parse($str);
     return $parser->getAsHTML();
 }
コード例 #6
0
ファイル: BBCodeBehavior.php プロジェクト: bupy7/yii2-bbcode
 /**
  * Parsing of BB-codes.
  * 
  * @param string $content Content for parsing.
  * @return string
  */
 protected function process($content)
 {
     $parser = new Parser();
     $parser->addCodeDefinitionSet(new $this->defaultCodeDefinitionSet());
     // add definitions builder
     foreach ($this->codeDefinitionBuilder as $item) {
         if (is_string($item)) {
             $builder = new $item();
             if ($builder instanceof CodeDefinitionBuilder) {
                 $parser->addCodeDefinition($builder->build());
             }
         } elseif ($item instanceof CodeDefinitionBuilder) {
             $parser->addCodeDefinition($item->build());
         } elseif (is_callable($item)) {
             $parser->addCodeDefinition(call_user_func_array($item, [new CodeDefinitionBuilder()]));
         } elseif (isset($item[0]) && isset($item[1])) {
             $builder = new CodeDefinitionBuilder($item[0], $item[1]);
             $parser->addCodeDefinition($builder->build());
         }
     }
     //added definitions set
     foreach ($this->codeDefinitionSet as $item) {
         if (is_string($item)) {
             $set = new $item();
             if ($set instanceof CodeDefinitionSet) {
                 $parser->addCodeDefinitionSet($set);
             }
         } elseif ($item instanceof CodeDefinitionSet) {
             $parser->addCodeDefinitionSet($item);
         }
     }
     //added definitions
     foreach ($this->codeDefinition as $item) {
         if (is_string($item)) {
             $set = new $item();
             if ($set instanceof CodeDefinition) {
                 $parser->addCodeDefinition($set);
             }
         } elseif ($item instanceof CodeDefinition) {
             $parser->addCodeDefinition($item);
         }
     }
     $parser->parse($content);
     if ($this->asHtml) {
         return $parser->getAsHtml();
     }
     return $parser->getAsBBCode();
 }