@@ -220,6 +220,7 @@ public function convertToStorageValue(Field $field)
220
220
* @param array<array<string, scalar>> $rows
221
221
* @param array<array<string, scalar>> $nameRows
222
222
* @param string $prefix
223
+ * @param array<string>|null $translations
223
224
*
224
225
* @return \eZ\Publish\SPI\Persistence\Content[]
225
226
*
@@ -228,7 +229,8 @@ public function convertToStorageValue(Field $field)
228
229
public function extractContentFromRows (
229
230
array $ rows ,
230
231
array $ nameRows ,
231
- string $ prefix = 'ezcontentobject_ '
232
+ string $ prefix = 'ezcontentobject_ ' ,
233
+ ?array $ translations = null
232
234
): array {
233
235
$ versionedNameData = [];
234
236
@@ -245,7 +247,8 @@ public function extractContentFromRows(
245
247
246
248
$ fieldDefinitions = $ this ->loadCachedVersionFieldDefinitionsPerLanguage (
247
249
$ rows ,
248
- $ prefix
250
+ $ prefix ,
251
+ $ translations
249
252
);
250
253
251
254
foreach ($ rows as $ row ) {
@@ -348,7 +351,8 @@ private function buildContentObjects(
348
351
*/
349
352
private function loadCachedVersionFieldDefinitionsPerLanguage (
350
353
array $ rows ,
351
- string $ prefix
354
+ string $ prefix ,
355
+ ?array $ translations = null
352
356
): array {
353
357
$ fieldDefinitions = [];
354
358
$ contentTypes = [];
@@ -364,7 +368,8 @@ private function loadCachedVersionFieldDefinitionsPerLanguage(
364
368
continue ;
365
369
}
366
370
367
- $ languageCodes = $ this ->extractLanguageCodesFromMask ($ languageMask , $ allLanguages );
371
+ $ allLanguagesCodes = $ this ->extractLanguageCodesFromMask ($ languageMask , $ allLanguages );
372
+ $ languageCodes = empty ($ translations ) ? $ allLanguagesCodes : array_intersect ($ translations , $ allLanguagesCodes );
368
373
$ contentTypes [$ contentTypeId ] = $ contentTypes [$ contentTypeId ] ?? $ this ->contentTypeHandler ->load ($ contentTypeId );
369
374
$ contentType = $ contentTypes [$ contentTypeId ];
370
375
foreach ($ contentType ->fieldDefinitions as $ fieldDefinition ) {
0 commit comments