From 3cf9f794c5ef1abaac5d4430d6c254d27ff6c413 Mon Sep 17 00:00:00 2001 From: Anja <aleichsenring@ab-softlab.de> Date: Fri, 29 Dec 2017 09:44:59 +0100 Subject: [PATCH] [TASK] Add section for translated pages to lowlevel statistics page Since table pages holds both default language and translated records, the statistics don't add up anymore. By introducing a dedicated value count for translated pages, the sums are equal with the page tree again. Resolves: #83444 Releases: master Change-Id: Ice6edde88a15e9590a86ced78565b180d2546ab7 Reviewed-on: https://review.typo3.org/55229 Tested-by: TYPO3com <no-reply@typo3.com> Reviewed-by: Georg Ringer <georg.ringer@gmail.com> Tested-by: Georg Ringer <georg.ringer@gmail.com> Reviewed-by: Jigal van Hemert <jigal.van.hemert@typo3.org> Tested-by: Jigal van Hemert <jigal.van.hemert@typo3.org> --- .../Integrity/DatabaseIntegrityCheck.php | 21 +++++++++++++++++-- .../DatabaseIntegrityController.php | 4 ++++ .../Resources/Private/Language/locallang.xlf | 5 ++++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/typo3/sysext/core/Classes/Integrity/DatabaseIntegrityCheck.php b/typo3/sysext/core/Classes/Integrity/DatabaseIntegrityCheck.php index 1dfdd08681d6..ba5fed651ee3 100644 --- a/typo3/sysext/core/Classes/Integrity/DatabaseIntegrityCheck.php +++ b/typo3/sysext/core/Classes/Integrity/DatabaseIntegrityCheck.php @@ -53,6 +53,11 @@ class DatabaseIntegrityCheck */ public $page_idArray = []; + /** + * @var array Will hold id/rec pairs from genTree() that are not default language + */ + protected $page_translatedPageIDArray = []; + /** * @var array */ @@ -92,6 +97,14 @@ class DatabaseIntegrityCheck */ public $lostPagesList = ''; + /** + * @return array + */ + public function getPageTranslatedPageIDArray(): array + { + return $this->page_translatedPageIDArray; + } + /** * Generates a list of Page-uid's that corresponds to the tables in the tree. * This list should ideally include all records in the pages-table. @@ -107,7 +120,7 @@ class DatabaseIntegrityCheck if (!$this->genTree_includeDeleted) { $queryBuilder->getRestrictions()->add(GeneralUtility::makeInstance(DeletedRestriction::class)); } - $queryBuilder->select('uid', 'title', 'doktype', 'deleted', 'hidden') + $queryBuilder->select('uid', 'title', 'doktype', 'deleted', 'hidden', 'sys_language_uid') ->from('pages') ->orderBy('sorting'); if ($versions) { @@ -126,7 +139,11 @@ class DatabaseIntegrityCheck while ($row = $result->fetch()) { $newID = $row['uid']; // Register various data for this item: - $this->page_idArray[$newID] = $row; + if ($row['sys_language_uid'] === 0) { + $this->page_idArray[$newID] = $row; + } else { + $this->page_translatedPageIDArray[$newID] = $row; + } $this->recStats['all_valid']['pages'][$newID] = $newID; if ($row['deleted']) { $this->recStats['deleted']['pages'][$newID] = $newID; diff --git a/typo3/sysext/lowlevel/Classes/Controller/DatabaseIntegrityController.php b/typo3/sysext/lowlevel/Classes/Controller/DatabaseIntegrityController.php index 5cc96505a6f8..8cc6b9eb7710 100644 --- a/typo3/sysext/lowlevel/Classes/Controller/DatabaseIntegrityController.php +++ b/typo3/sysext/lowlevel/Classes/Controller/DatabaseIntegrityController.php @@ -378,6 +378,10 @@ class DatabaseIntegrityController 'icon' => $this->iconFactory->getIconForRecord('pages', [], Icon::SIZE_SMALL)->render(), 'count' => count($admin->page_idArray) ], + 'translated_pages' => [ + 'icon' => $this->iconFactory->getIconForRecord('pages', [], Icon::SIZE_SMALL)->render(), + 'count' => count($admin->getPageTranslatedPageIDArray()), + ], 'hidden_pages' => [ 'icon' => $this->iconFactory->getIconForRecord('pages', ['hidden' => 1], Icon::SIZE_SMALL)->render(), 'count' => $admin->recStats['hidden'] diff --git a/typo3/sysext/lowlevel/Resources/Private/Language/locallang.xlf b/typo3/sysext/lowlevel/Resources/Private/Language/locallang.xlf index 59178aa94e7f..ebfa1a77d052 100644 --- a/typo3/sysext/lowlevel/Resources/Private/Language/locallang.xlf +++ b/typo3/sysext/lowlevel/Resources/Private/Language/locallang.xlf @@ -226,7 +226,10 @@ <source>Pages</source> </trans-unit> <trans-unit id="total_pages"> - <source>Total number of pages</source> + <source>Total number of default language pages</source> + </trans-unit> + <trans-unit id="translated_pages"> + <source>Total number of translated pages</source> </trans-unit> <trans-unit id="deleted_pages"> <source>Marked-deleted pages</source> -- GitLab