Index: Classes/DataHandling/SlugHelper.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- Classes/DataHandling/SlugHelper.php (date 1568188868694) +++ Classes/DataHandling/SlugHelper.php (date 1568188868694) @@ -250,7 +250,9 @@ $this->applySlugConstraint($queryBuilder, $slug); $this->applyPageIdConstraint($queryBuilder, $pageId); $this->applyRecordConstraint($queryBuilder, $recordId); - $this->applyLanguageConstraint($queryBuilder, $languageId); + if ($languageId != -1) { + $this->applyLanguageConstraint($queryBuilder, [-1, $languageId]); + } $this->applyWorkspaceConstraint($queryBuilder); $statement = $queryBuilder->execute(); @@ -287,7 +289,9 @@ $queryBuilder = $this->createPreparedQueryBuilder(); $this->applySlugConstraint($queryBuilder, $slug); $this->applyRecordConstraint($queryBuilder, $recordId); - $this->applyLanguageConstraint($queryBuilder, $languageId); + if ($languageId != -1) { + $this->applyLanguageConstraint($queryBuilder, [-1, $languageId]); + } $this->applyWorkspaceConstraint($queryBuilder); $statement = $queryBuilder->execute(); @@ -431,9 +435,9 @@ /** * @param QueryBuilder $queryBuilder - * @param int $languageId + * @param int|array $languageId */ - protected function applyLanguageConstraint(QueryBuilder $queryBuilder, int $languageId) + protected function applyLanguageConstraint(QueryBuilder $queryBuilder, $languageId) { $languageFieldName = $GLOBALS['TCA'][$this->tableName]['ctrl']['languageField'] ?? null; if (!is_string($languageFieldName)) { @@ -441,12 +445,21 @@ } // Only check records of the given language - $queryBuilder->andWhere( - $queryBuilder->expr()->eq( - $languageFieldName, - $queryBuilder->createNamedParameter($languageId, \PDO::PARAM_INT) - ) - ); + if (is_array($languageId)) { + $queryBuilder->andWhere( + $queryBuilder->expr()->in( + $languageFieldName, + $queryBuilder->createNamedParameter($languageId, Connection::PARAM_INT_ARRAY) + ) + ); + } else { + $queryBuilder->andWhere( + $queryBuilder->expr()->eq( + $languageFieldName, + $queryBuilder->createNamedParameter($languageId, \PDO::PARAM_INT) + ) + ); + } } /**