diff --git a/Classes/Xclasses/RecordLocalizeSummaryModifier.php b/Classes/Xclasses/RecordLocalizeSummaryModifier.php index 79a5162f..49037dd4 100644 --- a/Classes/Xclasses/RecordLocalizeSummaryModifier.php +++ b/Classes/Xclasses/RecordLocalizeSummaryModifier.php @@ -15,6 +15,8 @@ use B13\Container\Tca\Registry; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\ConnectionPool; +use TYPO3\CMS\Core\Database\Query\QueryBuilder; +use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction; use TYPO3\CMS\Core\SingletonInterface; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -101,7 +103,7 @@ protected function getContainerUids(array $uids): array if (empty($containerCTypes)) { return []; } - $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tt_content'); + $queryBuilder = $this->getQueryBuilder(); return (array)$queryBuilder->select('uid') ->from('tt_content') ->where( @@ -121,7 +123,7 @@ protected function getContainerUids(array $uids): array protected function getContainerChildren(array $uids): array { $containerChildren = []; - $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tt_content'); + $queryBuilder = $this->getQueryBuilder(); $stm = $queryBuilder->select('*') ->from('tt_content') ->where( @@ -140,4 +142,13 @@ protected function getContainerChildren(array $uids): array } return $containerChildren; } + + protected function getQueryBuilder(): QueryBuilder + { + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tt_content'); + $queryBuilder->getRestrictions() + ->removeAll() + ->add(GeneralUtility::makeInstance(DeletedRestriction::class)); + return $queryBuilder; + } } diff --git a/Tests/Functional/Xclasses/Fixtures/hidden_child_record.xml b/Tests/Functional/Xclasses/Fixtures/hidden_child_record.xml new file mode 100644 index 00000000..53629d10 --- /dev/null +++ b/Tests/Functional/Xclasses/Fixtures/hidden_child_record.xml @@ -0,0 +1,9 @@ + + + + 1 + header + 2 + 1 + + diff --git a/Tests/Functional/Xclasses/Fixtures/hidden_container_record.xml b/Tests/Functional/Xclasses/Fixtures/hidden_container_record.xml new file mode 100644 index 00000000..352827c6 --- /dev/null +++ b/Tests/Functional/Xclasses/Fixtures/hidden_container_record.xml @@ -0,0 +1,8 @@ + + + + 1 + b13-2cols-with-header-container + 1 + + diff --git a/Tests/Functional/Xclasses/RecordLocalizeSummaryModifierTest.php b/Tests/Functional/Xclasses/RecordLocalizeSummaryModifierTest.php index a13e4059..85e05a38 100644 --- a/Tests/Functional/Xclasses/RecordLocalizeSummaryModifierTest.php +++ b/Tests/Functional/Xclasses/RecordLocalizeSummaryModifierTest.php @@ -38,4 +38,33 @@ public function getContainerUidsReturnsAllUids(): void $containerUids = $recordLocalizeSummeryModifier->_call('getContainerUids', [1, 2]); self::assertSame(2, count($containerUids)); } + + /** + * @test + */ + public function getContainerChildrenReturnsHiddenRecords(): void + { + $this->importDataSet(ORIGINAL_ROOT . 'typo3conf/ext/container/Tests/Functional/Xclasses/Fixtures/hidden_child_record.xml'); + $recordLocalizeSummeryModifier = $this->getAccessibleMock( + RecordLocalizeSummaryModifier::class, + ['foo'] + ); + $containerChildren = $recordLocalizeSummeryModifier->_call('getContainerChildren', [1]); + self::assertTrue(isset($containerChildren[1])); + self::assertIsArray($containerChildren[1]); + } + + /** + * @test + */ + public function getContainerUidsReturnsHiddenUids(): void + { + $this->importDataSet(ORIGINAL_ROOT . 'typo3conf/ext/container/Tests/Functional/Xclasses/Fixtures/hidden_container_record.xml'); + $recordLocalizeSummeryModifier = $this->getAccessibleMock( + RecordLocalizeSummaryModifier::class, + ['foo'] + ); + $containerUids = $recordLocalizeSummeryModifier->_call('getContainerUids', [1]); + self::assertSame([1], $containerUids); + } }