2 namespace wcf\system\html\output\node
;
3 use wcf\system\bbcode\HtmlBBCodeParser
;
4 use wcf\system\html\node\AbstractHtmlNodeProcessor
;
5 use wcf\util\StringUtil
;
8 * Processes bbcodes represented by `<woltlab-metacode>`.
10 * @author Alexander Ebert
11 * @copyright 2001-2016 WoltLab GmbH
12 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
13 * @package WoltLabSuite\Core\System\Html\Output\Node
16 class HtmlOutputNodeWoltlabMetacode
extends AbstractHtmlOutputNode
{
20 protected $tagName = 'woltlab-metacode';
25 public function process(array $elements, AbstractHtmlNodeProcessor
$htmlNodeProcessor) {
26 /** @var \DOMElement $element */
27 foreach ($elements as $element) {
28 $name = $element->getAttribute('data-name');
29 $attributes = $element->getAttribute('data-attributes');
31 $nodeIdentifier = StringUtil
::getRandomID();
33 $element = $htmlNodeProcessor->renameTag($element, 'wcfNode-' . $nodeIdentifier);
35 $htmlNodeProcessor->addNodeData($this, $nodeIdentifier, [
37 'attributes' => $htmlNodeProcessor->parseAttributes($attributes),
46 public function replaceTag(array $data) {
47 HtmlBBCodeParser
::getInstance()->setOutputType($this->outputType
);
49 return HtmlBBCodeParser
::getInstance()->getHtmlOutput($data['name'], $data['attributes'], $data['element']);