2015-12-02 15:38:40 +01:00
|
|
|
<?php
|
2016-02-03 23:22:56 +01:00
|
|
|
/**
|
|
|
|
* Holds the text alignment bbcode class.
|
2016-03-08 18:07:58 -05:00
|
|
|
*
|
2016-02-03 23:22:56 +01:00
|
|
|
* @package Sakura
|
|
|
|
*/
|
|
|
|
|
2015-12-02 15:38:40 +01:00
|
|
|
namespace Sakura\BBcodeDefinitions;
|
|
|
|
|
|
|
|
use JBBCode\CodeDefinition;
|
|
|
|
use JBBCode\ElementNode;
|
|
|
|
|
2016-02-02 22:04:15 +01:00
|
|
|
/**
|
|
|
|
* Text alignment bbcode for JBBCode
|
2016-03-08 18:07:58 -05:00
|
|
|
*
|
2016-02-02 22:04:15 +01:00
|
|
|
* @package Sakura
|
|
|
|
* @author Julian van de Groep <me@flash.moe>
|
|
|
|
*/
|
2015-12-02 09:40:28 -05:00
|
|
|
class Align extends CodeDefinition
|
|
|
|
{
|
2016-02-02 22:04:15 +01:00
|
|
|
/**
|
|
|
|
* Constructor.
|
|
|
|
*/
|
2015-12-02 15:38:40 +01:00
|
|
|
public function __construct()
|
|
|
|
{
|
|
|
|
parent::__construct();
|
|
|
|
$this->setTagName("align");
|
|
|
|
$this->setUseOption(true);
|
|
|
|
}
|
|
|
|
|
2016-02-02 22:04:15 +01:00
|
|
|
/**
|
|
|
|
* Creates compiled HTML from the align bbcode.
|
2016-03-08 18:07:58 -05:00
|
|
|
*
|
2016-02-02 22:04:15 +01:00
|
|
|
* @param ElementNode $el The JBBCode element node.
|
2016-03-08 18:07:58 -05:00
|
|
|
*
|
2016-02-02 22:04:15 +01:00
|
|
|
* @return string Compiled HTML.
|
|
|
|
*/
|
2015-12-02 15:38:40 +01:00
|
|
|
public function asHtml(ElementNode $el)
|
|
|
|
{
|
|
|
|
$alignments = [
|
|
|
|
'left',
|
|
|
|
'center',
|
2016-03-24 01:40:59 +01:00
|
|
|
'right',
|
2015-12-02 15:38:40 +01:00
|
|
|
];
|
|
|
|
|
|
|
|
$content = "";
|
|
|
|
|
2015-12-02 09:40:28 -05:00
|
|
|
foreach ($el->getChildren() as $child) {
|
2015-12-02 15:38:40 +01:00
|
|
|
$content .= $child->getAsHTML();
|
|
|
|
}
|
|
|
|
|
|
|
|
$alignment = $el->getAttribute()['align'];
|
|
|
|
|
|
|
|
if (!in_array($alignment, $alignments)) {
|
|
|
|
return $el->getAsBBCode();
|
|
|
|
}
|
|
|
|
|
2016-03-24 01:40:59 +01:00
|
|
|
return "<div style='text-align: {$alignment};'>{$content}</div>";
|
2015-12-02 15:38:40 +01:00
|
|
|
}
|
|
|
|
}
|