This repository has been archived on 2024-06-26. You can view files and clone it, but cannot push or open issues or pull requests.
sakura/libraries/BBcodeDefinitions/Size.php

60 lines
1.1 KiB
PHP
Raw Normal View History

<?php
2016-02-03 22:22:56 +00:00
/**
* Holds the font size bbcode class.
2016-03-08 23:07:58 +00:00
*
2016-02-03 22:22:56 +00:00
* @package Sakura
*/
namespace Sakura\BBcodeDefinitions;
use JBBCode\CodeDefinition;
use JBBCode\ElementNode;
2016-02-02 21:04:15 +00:00
/**
* Size BBcode for JBBCode.
2016-03-08 23:07:58 +00:00
*
2016-02-02 21:04:15 +00:00
* @package Sakura
* @author Julian van de Groep <me@flash.moe>
*/
2015-12-02 14:40:28 +00:00
class Size extends CodeDefinition
{
2016-02-02 21:04:15 +00:00
/**
* Constructor.
*/
public function __construct()
{
parent::__construct();
$this->setTagName("size");
$this->setUseOption(true);
}
2016-02-02 21:04:15 +00:00
/**
* Compiles the size bbcode to HTML
2016-03-08 23:07:58 +00:00
*
2016-02-02 21:04:15 +00:00
* @param ElementNode $el The JBBCode element node.
2016-03-08 23:07:58 +00:00
*
2016-02-02 21:04:15 +00:00
* @return string The compiled HTML.
*/
public function asHtml(ElementNode $el)
{
$minSize = 0;
$maxSize = 200;
$content = "";
2015-12-02 14:40:28 +00:00
foreach ($el->getChildren() as $child) {
$content .= $child->getAsHTML();
}
$size = $el->getAttribute()['size'];
if ($size < $minSize || $size > $maxSize) {
return $el->getAsBBCode();
}
2016-03-24 00:40:59 +00:00
$size = $size / 100;
return "<span style='font-size: {$size}em;'>{$content}</span>";
}
}