| @@ 202-218 (lines=17) @@ | ||
| 199 | * |
|
| 200 | * @return int |
|
| 201 | */ |
|
| 202 | protected function generateLanguageMask(array $fields, $initialLanguageCode, $alwaysAvailable) |
|
| 203 | { |
|
| 204 | $languages = array($initialLanguageCode => true); |
|
| 205 | foreach ($fields as $field) { |
|
| 206 | if (isset($languages[$field->languageCode])) { |
|
| 207 | continue; |
|
| 208 | } |
|
| 209 | ||
| 210 | $languages[$field->languageCode] = true; |
|
| 211 | } |
|
| 212 | ||
| 213 | if ($alwaysAvailable) { |
|
| 214 | $languages['always-available'] = true; |
|
| 215 | } |
|
| 216 | ||
| 217 | return $this->languageMaskGenerator->generateLanguageMask($languages); |
|
| 218 | } |
|
| 219 | ||
| 220 | /** |
|
| 221 | * Inserts a new version. |
|
| @@ 1609-1625 (lines=17) @@ | ||
| 1606 | * |
|
| 1607 | * @todo Move logic to languageMaskGenerator in master. |
|
| 1608 | */ |
|
| 1609 | private function generateLanguageMaskFromLanguageCodes(array $translations, bool $useAlwaysAvailable = true): int |
|
| 1610 | { |
|
| 1611 | $languages = []; |
|
| 1612 | foreach ($translations as $translation) { |
|
| 1613 | if (isset($languages[$translation])) { |
|
| 1614 | continue; |
|
| 1615 | } |
|
| 1616 | ||
| 1617 | $languages[$translation] = true; |
|
| 1618 | } |
|
| 1619 | ||
| 1620 | if ($useAlwaysAvailable) { |
|
| 1621 | $languages['always-available'] = true; |
|
| 1622 | } |
|
| 1623 | ||
| 1624 | return $this->languageMaskGenerator->generateLanguageMask($languages); |
|
| 1625 | } |
|
| 1626 | } |
|
| 1627 | ||