[FEATURE] Show list of failed input fields in FormEngine
[Packages/TYPO3.CMS.git] / typo3 / sysext / fluid_styled_content / Classes / Hooks / TextmediaPreviewRenderer.php
1 <?php
2 namespace TYPO3\CMS\FluidStyledContent\Hooks;
3
4 /*
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17 use TYPO3\CMS\Backend\Utility\BackendUtility;
18 use TYPO3\CMS\Backend\View\PageLayoutView;
19 use TYPO3\CMS\Backend\View\PageLayoutViewDrawItemHookInterface;
20
21 /**
22 * Contains a preview rendering for the page module of CType="textmedia"
23 */
24 class TextmediaPreviewRenderer implements PageLayoutViewDrawItemHookInterface
25 {
26 /**
27 * Preprocesses the preview rendering of a content element of type "textmedia"
28 *
29 * @param \TYPO3\CMS\Backend\View\PageLayoutView $parentObject Calling parent object
30 * @param bool $drawItem Whether to draw the item using the default functionality
31 * @param string $headerContent Header content
32 * @param string $itemContent Item content
33 * @param array $row Record row of tt_content
34 *
35 * @return void
36 */
37 public function preProcess(
38 PageLayoutView &$parentObject,
39 &$drawItem,
40 &$headerContent,
41 &$itemContent,
42 array &$row
43 ) {
44 if ($row['CType'] === 'textmedia') {
45 if ($row['bodytext']) {
46 $itemContent .= $parentObject->linkEditContent($parentObject->renderText($row['bodytext']), $row) . '<br />';
47 }
48
49 if ($row['assets']) {
50 $itemContent .= $parentObject->linkEditContent($parentObject->getThumbCodeUnlinked($row, 'tt_content', 'assets'), $row) . '<br />';
51
52 $fileReferences = BackendUtility::resolveFileReferences('tt_content', 'assets', $row);
53
54 if (!empty($fileReferences)) {
55 $linkedContent = '';
56
57 foreach ($fileReferences as $fileReference) {
58 $linkedContent .= htmlspecialchars($fileReference->getDescription()) . '<br />';
59 }
60
61 $itemContent .= $parentObject->linkEditContent($linkedContent, $row);
62
63 unset($linkedContent);
64 }
65 }
66
67 $drawItem = false;
68 }
69 }
70 }