• 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/Updates/MigrateDashboardWidget.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\Updates;
13

14
use Doctrine\DBAL\Exception;
15
use TYPO3\CMS\Core\Database\ConnectionPool;
16
use TYPO3\CMS\Core\Utility\GeneralUtility;
17
use TYPO3\CMS\Install\Attribute\UpgradeWizard;
18
use TYPO3\CMS\Install\Updates\UpgradeWizardInterface;
19

20
#[UpgradeWizard('yoastDashboardWidgetMigrate')]
21
class MigrateDashboardWidget implements UpgradeWizardInterface
22
{
23
    protected const DASHBOARD_TABLE = 'be_dashboards';
24

25
    protected ConnectionPool $connectionPool;
26

27
    public function __construct()
28
    {
29
        $this->connectionPool = GeneralUtility::makeInstance(ConnectionPool::class);
×
30
    }
31

32
    public function getIdentifier(): string
33
    {
34
        return 'yoastDashboardWidgetMigrate';
×
35
    }
36

37
    public function getTitle(): string
38
    {
39
        return 'Yoast SEO for TYPO3 - Migrate dashboard widget';
×
40
    }
41

42
    public function getDescription(): string
43
    {
44
        return 'Migrate the Yoast SEO "Pages without meta description" widget to the widget from core';
×
45
    }
46

47
    public function executeUpdate(): bool
48
    {
NEW
49
        $this->connectionPool->getConnectionForTable(self::DASHBOARD_TABLE)->executeQuery(
×
NEW
50
            'UPDATE ' . self::DASHBOARD_TABLE . ' SET widgets = REPLACE(widgets, "yoastseo-pagesWithoutMetaDescription", "seo-pagesWithoutMetaDescription")'
×
NEW
51
        );
×
UNCOV
52
        return true;
×
53
    }
54

55
    protected function dashboardTableExists(): bool
56
    {
57
        try {
58
            $connection = $this->connectionPool->getConnectionForTable(self::DASHBOARD_TABLE);
×
59
            if (method_exists($connection, 'getSchemaManager')) {
×
60
                $schemaManager = $connection->getSchemaManager();
×
61
            } else {
62
                $schemaManager = $connection->createSchemaManager();
×
63
            }
64
            return $schemaManager->tablesExist([self::DASHBOARD_TABLE]);
×
65
        } catch (Exception $e) {
×
66
            return false;
×
67
        }
68
    }
69

70
    public function updateNecessary(): bool
71
    {
72
        return $this->dashboardTableExists();
×
73
    }
74

75
    public function getPrerequisites(): array
76
    {
77
        return [];
×
78
    }
79
}
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