FormatViewHelper.php 2.08 KB
Newer Older
1
<?php
2
3
namespace T3o\TerFe2\ViewHelpers;

4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/*******************************************************************
 *  Copyright notice
 *
 *  (c) 2011 Kai Vogel <kai.vogel@speedprogs.de>, Speedprogs.de
 *
 *  All rights reserved
 *
 *  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as
 *  published by the Free Software Foundation; either version 2 of
 *  the License, or (at your option) any later version.
 *
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
 *
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ******************************************************************/
27

28
29
30
/**
 * Format view helper
 */
31
class FormatViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper
32
{
33

34
35
36
37
    /**
     * Disable the escaping interceptor
     */
    protected $escapingInterceptorEnabled = FALSE;
38
39


40
41
42
43
44
45
46
47
48
49
50
51
    /**
     * Formats content with given function
     *
     * @param string $function Function to format the content
     * @param mixed $content Content
     * @return string Formated content
     */
    public function render($function, $content = NULL)
    {
        if ($content === NULL) {
            $content = $this->renderChildren();
        }
52

53
        if (empty($function) || !function_exists($function)) {
54
            throw new \Exception('Function "' . $function . '" not found to modify content');
55
        }
56

57
        if (!is_string($content) && !is_array($content)) {
58
            throw new \Exception('"' . ucfirst(gettype($content)) . '" is not an allowed type in format view helper');
59
        }
60

61
62
63
        if (is_array($content)) {
            return call_user_func_array($function, $content);
        }
64

65
66
67
68
        return call_user_func($function, $content);
    }

}