f58d5916d3dc1843f881507de689408886466bff
[Packages/TYPO3.CMS.git] / typo3 / sysext / extensionmanager / Classes / ViewHelpers / Format / JsonEncodeViewHelper.php
1 <?php
2 namespace TYPO3\CMS\Extensionmanager\ViewHelpers\Format;
3
4 /***************************************************************
5 * Copyright notice
6 *
7 * (c) 2012-2013 Susanne Moog <typo3@susannemoog.de>
8 * All rights reserved
9 *
10 * This script is part of the TYPO3 project. The TYPO3 project is
11 * free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
15 *
16 * The GNU General Public License can be found at
17 * http://www.gnu.org/copyleft/gpl.html.
18 * A copy is found in the text file GPL.txt and important notices to the license
19 * from the author is found in LICENSE.txt distributed with these scripts.
20 *
21 *
22 * This script is distributed in the hope that it will be useful,
23 * but WITHOUT ANY WARRANTY; without even the implied warranty of
24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 * GNU General Public License for more details.
26 *
27 * This copyright notice MUST APPEAR in all copies of the script!
28 ***************************************************************/
29 /**
30 * Wrapper for PHPs json_encode function.
31 *
32 * @see http://www.php.net/manual/en/function.json-encode.php
33 */
34 class JsonEncodeViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {
35
36 /**
37 * Constructor
38 *
39 * @api
40 */
41 public function __construct() {
42 $this->registerArgument('additionalAttributes', 'array', 'Additional tag attributes. They will be added directly to the resulting HTML tag.', FALSE);
43 }
44
45 /**
46 * Replaces newline characters by HTML line breaks.
47 *
48 * @return string the altered string.
49 * @api
50 */
51 public function render() {
52 if ($this->hasArgument('additionalAttributes') && is_array($this->arguments['additionalAttributes'])) {
53 return json_encode($this->arguments['additionalAttributes']);
54 }
55 $content = $this->renderChildren();
56 return json_encode($content);
57 }
58
59 }