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

Yoast / Yoast-SEO-for-TYPO3 / 13038778646

29 Jan 2025 07:18PM UTC coverage: 1.297% (-0.005%) from 1.302%
13038778646

push

github

RinyVT
[BUGFIX] All languages mode now shows preview from default language, language id is taken from moduleData attribute of request

0 of 13 new or added lines in 1 file covered. (0.0%)

35 of 2699 relevant lines covered (1.3%)

0.04 hits per line

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

0.0
/Classes/Backend/PageLayoutHeader.php
1
<?php
2

3
declare(strict_types=1);
4

5
namespace YoastSeoForTypo3\YoastSeo\Backend;
6

7
use TYPO3\CMS\Backend\Controller\PageLayoutController;
8
use TYPO3\CMS\Backend\Template\ModuleTemplate;
9
use TYPO3\CMS\Backend\Utility\BackendUtility;
10
use TYPO3\CMS\Core\Information\Typo3Version;
11
use TYPO3\CMS\Core\Utility\GeneralUtility;
12
use YoastSeoForTypo3\YoastSeo\Service\PageLayoutHeader\PageDataService;
13
use YoastSeoForTypo3\YoastSeo\Service\PageLayoutHeader\PageLayoutHeaderRenderer;
14
use YoastSeoForTypo3\YoastSeo\Service\PageLayoutHeader\VisibilityChecker;
15
use YoastSeoForTypo3\YoastSeo\Service\SnippetPreview\SnippetPreviewConfigurationBuilder;
16
use YoastSeoForTypo3\YoastSeo\Service\SnippetPreviewService;
17
use YoastSeoForTypo3\YoastSeo\Service\UrlService;
18

19
class PageLayoutHeader
20
{
21
    public function __construct(
22
        protected UrlService $urlService,
23
        protected SnippetPreviewService $snippetPreviewService,
24
        protected SnippetPreviewConfigurationBuilder $snippetPreviewConfigurationBuilder,
25
        protected PageLayoutHeaderRenderer $pageLayoutHeaderRenderer,
26
        protected VisibilityChecker $visibilityChecker,
27
        protected PageDataService $pageDataService
28
    ) {}
×
29

30
    /**
31
     * @param array<string, string>|null $params
32
     */
33
    public function render(?array $params = null, PageLayoutController|ModuleTemplate|null $parentObj = null): string
34
    {
35
        $languageId = $this->getLanguageId();
×
36
        $pageId = (int)$_GET['id'];
×
37
        $currentPage = $this->pageDataService->getCurrentPage($pageId, $languageId, $parentObj);
×
38

39
        if (!is_array($currentPage) || !$this->visibilityChecker->shouldShowPreview($pageId, $currentPage)) {
×
40
            return '';
×
41
        }
42

43
        $this->snippetPreviewService->buildSnippetPreview(
×
44
            $this->urlService->getPreviewUrl($pageId, $languageId),
×
45
            $currentPage,
×
46
            $this->snippetPreviewConfigurationBuilder->buildConfigurationForPage($pageId, $currentPage, $languageId)
×
47
        );
×
48

49
        return $this->pageLayoutHeaderRenderer->render();
×
50
    }
51

52
    protected function getLanguageId(): int
53
    {
NEW
54
        if (GeneralUtility::makeInstance(Typo3Version::class)->getMajorVersion() === 11) {
×
NEW
55
            $moduleData = BackendUtility::getModuleData(['language'], [], 'web_layout');
×
NEW
56
            return (int)$moduleData['language'];
×
57
        }
58

NEW
59
        $request = $GLOBALS['TYPO3_REQUEST'] ?? null;
×
NEW
60
        if ($request === null) {
×
NEW
61
            return 0;
×
62
        }
63

NEW
64
        $moduleData = $request->getAttribute('moduleData');
×
NEW
65
        if ($moduleData === null) {
×
NEW
66
            return 0;
×
67
        }
68

NEW
69
        $language = (int)$moduleData->get('language');
×
NEW
70
        if ($language === -1) {
×
NEW
71
            return 0;
×
72
        }
73

NEW
74
        return $language;
×
75
    }
76
}
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