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

Yoast / Yoast-SEO-for-TYPO3 / 21521134747

30 Jan 2026 03:30PM UTC coverage: 0.866% (-0.4%) from 1.275%
21521134747

push

github

RinyVT
[FEATURE] Version 12.0.0, added v14 support, removed v11 support including php8.0 and php8.1, rewrote backend javascript functionality to typescript and webcomponents

0 of 550 new or added lines in 53 files covered. (0.0%)

33 existing lines in 21 files now uncovered.

23 of 2657 relevant lines covered (0.87%)

0.03 hits per line

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

0.0
/Classes/Form/Element/FocusKeywordAnalysis.php
1
<?php
2

3
/**
4
 * This file is part of the "yoast_seo" extension for TYPO3 CMS.
5
 *
6
 * For the full copyright and license information, please read the
7
 * LICENSE.txt file that was distributed with this source code.
8
 */
9

10
declare(strict_types=1);
11

12
namespace YoastSeoForTypo3\YoastSeo\Form\Element;
13

14
use TYPO3\CMS\Backend\Form\AbstractNode;
15
use YoastSeoForTypo3\YoastSeo\Service\Form\NodeTemplateService;
16
use YoastSeoForTypo3\YoastSeo\Utility\YoastUtility;
17

18
class FocusKeywordAnalysis extends AbstractNode
19
{
20
    public function __construct(
21
        protected NodeTemplateService $templateService
NEW
22
    ) {}
×
23

24
    /**
25
     * @param array<string, mixed> $data
26
     */
27
    public function setData(array $data): void
28
    {
NEW
29
        $this->data = $data;
×
30
    }
31

32
    /**
33
     * @return array<string, mixed>
34
     */
35
    public function render(): array
36
    {
37
        $resultArray = $this->initializeResultArray();
×
38

NEW
39
        if ($this->data['tableName'] === 'pages' && !in_array(
×
NEW
40
            (int)($this->data['databaseRow']['doktype'][0] ?? 0),
×
NEW
41
            YoastUtility::getAllowedDoktypes()
×
NEW
42
        )) {
×
43
            $resultArray['html'] = $this->templateService->renderView('FocusKeywordAnalysis', ['wrongDoktype' => true]);
×
44
            return $resultArray;
×
45
        }
46

47
        if ($focusKeywordField = $this->getFocusKeywordField()) {
×
48
            $focusKeywordField = $this->getFieldSelector($focusKeywordField);
×
49
        }
50

51
        $subtype = '';
×
52
        if ($this->data['tableName'] === 'tx_yoastseo_related_focuskeyword') {
×
53
            $subtype = 'rk' . $this->data['vanillaUid'];
×
54
        }
55

56
        $resultArray['html'] = $this->templateService->renderView('FocusKeywordAnalysis', [
×
57
            'focusKeywordField' => $focusKeywordField,
×
58
            'subtype' => $subtype,
×
59
        ]);
×
60
        return $resultArray;
×
61
    }
62

63
    protected function getFocusKeywordField(): ?string
64
    {
65
        if (!empty($this->data['parameterArray']['fieldConf']['config']['settings']['focusKeywordField'] ?? '')) {
×
66
            return $this->data['parameterArray']['fieldConf']['config']['settings']['focusKeywordField'];
×
67
        }
68
        return null;
×
69
    }
70

71
    protected function getFieldSelector(string $field): string
72
    {
NEW
73
        return "data[{$this->data['tableName']}][{$this->data['vanillaUid']}][$field]";
×
74
    }
75
}
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