[!!!][FEATURE] Streamline Fluid Styled Content and CSS Styled Content
[Packages/TYPO3.CMS.git] / typo3 / sysext / frontend / Classes / Hooks / PageLayoutView / ImagePreviewRenderer.php
1 <?php
2 namespace TYPO3\CMS\Frontend\Hooks\PageLayoutView;
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 /**
18 * Contains a preview rendering for the page module of CType="image"
19 */
20 class ImagePreviewRenderer implements \TYPO3\CMS\Backend\View\PageLayoutViewDrawItemHookInterface
21 {
22 /**
23 * Preprocesses the preview rendering of the content element "image".
24 *
25 * @param \TYPO3\CMS\Backend\View\PageLayoutView $parentObject Calling parent object
26 * @param bool $drawItem Whether to draw the item using the default functionalities
27 * @param string $headerContent Header content
28 * @param string $itemContent Item content
29 * @param array $row Record row of tt_content
30 * @return void
31 */
32 public function preProcess(
33 \TYPO3\CMS\Backend\View\PageLayoutView &$parentObject,
34 &$drawItem,
35 &$headerContent,
36 &$itemContent,
37 array &$row
38 ) {
39 if ($row['CType'] === 'image') {
40 if ($row['image']) {
41 $itemContent .= $parentObject->linkEditContent($parentObject->getThumbCodeUnlinked($row, 'tt_content', 'image'), $row);
42
43 $fileReferences = \TYPO3\CMS\Backend\Utility\BackendUtility::resolveFileReferences('tt_content', 'image', $row);
44
45 if (!empty($fileReferences)) {
46 $linkedContent = '';
47
48 foreach ($fileReferences as $fileReference) {
49 $description = $fileReference->getDescription();
50 if ($description !== null && $description !== '') {
51 $linkedContent .= htmlspecialchars($description) . '<br />';
52 }
53 }
54
55 $itemContent .= $parentObject->linkEditContent($linkedContent, $row);
56
57 unset($linkedContent);
58 }
59 }
60
61 $drawItem = false;
62 }
63 }
64 }