/** * @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()); }
/** * 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)); }
/** * 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()); }
/** * 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()); }
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(); }
/** * 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(); }