[!!!][FEATURE] Streamline Fluid Styled Content and CSS Styled Content
[Packages/TYPO3.CMS.git] / typo3 / sysext / frontend / Classes / Hooks / PageLayoutView / TextpicPreviewRenderer.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="textpic"
19 */
20 class TextpicPreviewRenderer implements \TYPO3\CMS\Backend\View\PageLayoutViewDrawItemHookInterface
21 {
22 /**
23 * Preprocesses the preview rendering of the content element "textpic".
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'] === 'textpic') {
40 if ($row['bodytext']) {
41 $itemContent .= $parentObject->linkEditContent($parentObject->renderText($row['bodytext']), $row) . '<br />';
42 }
43
44 if ($row['image']) {
45 $itemContent .= $parentObject->linkEditContent($parentObject->getThumbCodeUnlinked($row, 'tt_content', 'image'), $row);
46
47 $fileReferences = \TYPO3\CMS\Backend\Utility\BackendUtility::resolveFileReferences('tt_content', 'image', $row);
48
49 if (!empty($fileReferences)) {
50 $linkedContent = '';
51
52 foreach ($fileReferences as $fileReference) {
53 $description = $fileReference->getDescription();
54 if ($description !== null && $description !== '') {
55 $linkedContent .= htmlspecialchars($description) . '<br />';
56 }
57 }
58
59 $itemContent .= $parentObject->linkEditContent($linkedContent, $row);
60
61 unset($linkedContent);
62 }
63 }
64
65 $drawItem = false;
66 }
67 }
68 }