TYPO3 CMS  TYPO3_7-6
IconViewHelper.php
Go to the documentation of this file.
1 <?php
3 
4 /* *
5  * This script is backported from the TYPO3 Flow package "TYPO3.Fluid". *
6  * *
7  * It is free software; you can redistribute it and/or modify it under *
8  * the terms of the GNU Lesser General Public License, either version 3 *
9  * of the License, or (at your option) any later version. *
10  * *
11  * *
12  * This script is distributed in the hope that it will be useful, but *
13  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- *
14  * TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser *
15  * General Public License for more details. *
16  * *
17  * You should have received a copy of the GNU Lesser General Public *
18  * License along with the script. *
19  * If not, see http://www.gnu.org/licenses/lgpl.html *
20  * *
21  * The TYPO3 project - inspiring people to share! *
22  * */
23 
30 
57 {
72  public function render($uri = '', $icon = 'actions-document-close', $title = '', $additionalAttributes = [])
73  {
74  return static::renderStatic(
75  [
76  'uri' => $uri,
77  'icon' => $icon,
78  'title' => $title,
79  'additionalAttributes' => $additionalAttributes
80  ],
82  $this->renderingContext
83  );
84  }
85 
94  {
96  $uri = $arguments['uri'];
97  $icon = $arguments['icon'];
98  $title = $arguments['title'];
99  $additionalAttributes = $arguments['additionalAttributes'];
100  $additionalTagAttributes = '';
101  $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
102  $icon = '<span title="' . htmlspecialchars($title) . '">' . $iconFactory->getIcon($icon, Icon::SIZE_SMALL)->render() . '</span>';
103  if (empty($uri)) {
104  return $icon;
105  }
106 
107  if ($additionalAttributes) {
108  foreach ($additionalAttributes as $argumentKey => $argumentValue) {
109  $additionalTagAttributes .= ' ' . $argumentKey . '="' . htmlspecialchars($argumentValue) . '"';
110  }
111  }
112  return '<a href="' . $uri . '"' . $additionalTagAttributes . '>' . $icon . '</a>';
113  }
114 }
static renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext)
render($uri='', $icon='actions-document-close', $title='', $additionalAttributes=[])