FluidTYPO3\Vhs\ViewHelpers\Format\WordWrapViewHelper::renderStatic PHP Method

renderStatic() public static method

public static renderStatic ( array $arguments, Closure $renderChildrenClosure, TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface $renderingContext ) : mixed
$arguments array
$renderChildrenClosure Closure
$renderingContext TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface
return mixed
    public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext)
    {
        $subject = $arguments['subject'];
        if (true === empty($subject)) {
            $subject = $renderChildrenClosure();
        }
        $limit = (int) $arguments['limit'];
        $break = $arguments['break'];
        $glue = $arguments['glue'];
        $subject = preg_replace('/ +/', ' ', $subject);
        $subject = str_replace(array("\r\n", "\r"), PHP_EOL, $subject);
        $subject = wordwrap($subject, $limit, $break, false);
        $output = '';
        foreach (explode($break, $subject) as $line) {
            if (mb_strlen($line) <= $limit) {
                $output .= $line . $glue;
                continue;
            }
            $temp = '';
            while (mb_strlen($line) > $limit) {
                $temp .= mb_substr($line, 0, $limit - 1);
                $line = mb_substr($line, $limit - 1);
            }
            if (false === empty($temp)) {
                $output .= $temp . $glue . $line . $glue;
            } else {
                $output .= $line . $glue;
            }
        }
        return $output;
    }