• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

FluidTYPO3 / flux / 17904759627

15 Sep 2025 08:47AM UTC coverage: 90.676% (-2.1%) from 92.767%
17904759627

push

github

NamelessCoder
[TASK] Set beta stability

6924 of 7636 relevant lines covered (90.68%)

9.49 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/Classes/Integration/Event/ModifyPageLayoutContentEventListener.php
1
<?php
2
namespace FluidTYPO3\Flux\Integration\Event;
3

4
/*
5
 * This file is part of the FluidTYPO3/Flux project under GPLv2 or later.
6
 *
7
 * For the full copyright and license information, please read the
8
 * LICENSE.md file that was distributed with this source code.
9
 */
10

11
use FluidTYPO3\Flux\Enum\PreviewOption;
12
use FluidTYPO3\Flux\Provider\PageProvider;
13
use TYPO3\CMS\Backend\Controller\Event\ModifyPageLayoutContentEvent;
14
use TYPO3\CMS\Backend\Utility\BackendUtility;
15

16
class ModifyPageLayoutContentEventListener
17
{
18
    private PageProvider $pageProvider;
19

20
    public function __construct(PageProvider $pageProvider)
21
    {
22
        $this->pageProvider = $pageProvider;
×
23
    }
24

25
    public function renderPreview(ModifyPageLayoutContentEvent $event): void
26
    {
27
        $id = $event->getRequest()->getQueryParams()['id'] ?? 0;
×
28

29
        $row = $this->getRecord(is_scalar($id) ? (integer) $id : 0);
×
30
        if ($row === null) {
×
31
            return;
×
32
        }
33

34
        $form = $this->pageProvider->getForm($row);
×
35
        if (!$form || !$form->getEnabled()) {
×
36
            return;
×
37
        }
38

39
        [, $previewContent, ] = $this->pageProvider->getPreview($row);
×
40
        if (empty($previewContent)) {
×
41
            return;
×
42
        }
43

44
        $previewOptions = $form->getOption(PreviewOption::PREVIEW);
×
45
        $previewMode = is_array($previewOptions) ? $previewOptions[PreviewOption::MODE] ?? null : $previewOptions;
×
46

47
        switch ($previewMode) {
48
            case PreviewOption::MODE_NONE:
×
49
                return;
×
50
            case PreviewOption::MODE_PREPEND:
×
51
                $event->setHeaderContent($previewContent . $event->getHeaderContent());
×
52
                break;
×
53
            case PreviewOption::MODE_REPLACE:
×
54
                $event->setHeaderContent($previewContent);
×
55
                break;
×
56
            default:
57
            case PreviewOption::MODE_APPEND:
×
58
                $event->addHeaderContent($previewContent);
×
59
                break;
×
60
        }
61
    }
62

63
    /**
64
     * @codeCoverageIgnore
65
     */
66
    protected function getRecord(int $uid): ?array
67
    {
68
        return BackendUtility::getRecord('pages', $uid);
69
    }
70
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc