Skip to content

Commit 294e63b

Browse files
authored
Merge pull request #233 from b13/bugfix/hidden-children
[BUGFIX] hidden records in localization process
2 parents f09806c + d491e0a commit 294e63b

4 files changed

Lines changed: 59 additions & 2 deletions

File tree

Classes/Xclasses/RecordLocalizeSummaryModifier.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
use B13\Container\Tca\Registry;
1616
use TYPO3\CMS\Core\Database\Connection;
1717
use TYPO3\CMS\Core\Database\ConnectionPool;
18+
use TYPO3\CMS\Core\Database\Query\QueryBuilder;
19+
use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
1820
use TYPO3\CMS\Core\SingletonInterface;
1921
use TYPO3\CMS\Core\Utility\GeneralUtility;
2022

@@ -101,7 +103,7 @@ protected function getContainerUids(array $uids): array
101103
if (empty($containerCTypes)) {
102104
return [];
103105
}
104-
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tt_content');
106+
$queryBuilder = $this->getQueryBuilder();
105107
return (array)$queryBuilder->select('uid')
106108
->from('tt_content')
107109
->where(
@@ -121,7 +123,7 @@ protected function getContainerUids(array $uids): array
121123
protected function getContainerChildren(array $uids): array
122124
{
123125
$containerChildren = [];
124-
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tt_content');
126+
$queryBuilder = $this->getQueryBuilder();
125127
$stm = $queryBuilder->select('*')
126128
->from('tt_content')
127129
->where(
@@ -140,4 +142,13 @@ protected function getContainerChildren(array $uids): array
140142
}
141143
return $containerChildren;
142144
}
145+
146+
protected function getQueryBuilder(): QueryBuilder
147+
{
148+
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tt_content');
149+
$queryBuilder->getRestrictions()
150+
->removeAll()
151+
->add(GeneralUtility::makeInstance(DeletedRestriction::class));
152+
return $queryBuilder;
153+
}
143154
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<dataset>
3+
<tt_content>
4+
<uid>1</uid>
5+
<CType>header</CType>
6+
<tx_container_parent>2</tx_container_parent>
7+
<hidden>1</hidden>
8+
</tt_content>
9+
</dataset>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<dataset>
3+
<tt_content>
4+
<uid>1</uid>
5+
<CType>b13-2cols-with-header-container</CType>
6+
<hidden>1</hidden>
7+
</tt_content>
8+
</dataset>

Tests/Functional/Xclasses/RecordLocalizeSummaryModifierTest.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,33 @@ public function getContainerUidsReturnsAllUids(): void
3838
$containerUids = $recordLocalizeSummeryModifier->_call('getContainerUids', [1, 2]);
3939
self::assertSame(2, count($containerUids));
4040
}
41+
42+
/**
43+
* @test
44+
*/
45+
public function getContainerChildrenReturnsHiddenRecords(): void
46+
{
47+
$this->importDataSet(ORIGINAL_ROOT . 'typo3conf/ext/container/Tests/Functional/Xclasses/Fixtures/hidden_child_record.xml');
48+
$recordLocalizeSummeryModifier = $this->getAccessibleMock(
49+
RecordLocalizeSummaryModifier::class,
50+
['foo']
51+
);
52+
$containerChildren = $recordLocalizeSummeryModifier->_call('getContainerChildren', [1]);
53+
self::assertTrue(isset($containerChildren[1]));
54+
self::assertIsArray($containerChildren[1]);
55+
}
56+
57+
/**
58+
* @test
59+
*/
60+
public function getContainerUidsReturnsHiddenUids(): void
61+
{
62+
$this->importDataSet(ORIGINAL_ROOT . 'typo3conf/ext/container/Tests/Functional/Xclasses/Fixtures/hidden_container_record.xml');
63+
$recordLocalizeSummeryModifier = $this->getAccessibleMock(
64+
RecordLocalizeSummaryModifier::class,
65+
['foo']
66+
);
67+
$containerUids = $recordLocalizeSummeryModifier->_call('getContainerUids', [1]);
68+
self::assertSame([1], $containerUids);
69+
}
4170
}

0 commit comments

Comments
 (0)