<?php
/*
* List BBcode
* https://gist.github.com/jbowens/5646994
*/
namespace Sakura\BBcodeDefinitions;
use JBBCode\Parser;
use JBBCode\CodeDefinition;
use JBBCode\ElementNode;
/**
* Implements a [list] code definition that provides the following syntax:
*
* [list]
* [*] first item
* [*] second item
* [*] third item
* [/list]
class Lists extends CodeDefinition
{
public function __construct()
$this->parseContent = true;
$this->useOption = false;
$this->setTagName('list');
$this->nestLimit = -1;
}
public function asHtml(ElementNode $el)
$bodyHtml = '';
foreach ($el->getChildren() as $child) {
$bodyHtml .= $child->getAsHTML();
$listPieces = explode('[*]', $bodyHtml);
unset($listPieces[0]);
$listPieces = array_map(function ($li) {
return '<li>'.$li.'</li>';
}, $listPieces);
return '<ul>'.implode('', $listPieces).'</ul>';