aboutsummaryrefslogtreecommitdiff
path: root/lib/models/ModuleManagementModel.php
diff options
context:
space:
mode:
authorDavid Siegfried <david.siegfried@uni-vechta.de>2024-12-04 12:02:06 +0100
committerDavid Siegfried <david.siegfried@uni-vechta.de>2024-12-04 14:30:40 +0100
commitfcc7482d7d002ae4dcfd095d68ed25d68d0e0adc (patch)
tree459f52a42a239e5594538c62589642ab6dccd227 /lib/models/ModuleManagementModel.php
parent96fa5cdec8a36b7fd6330cbe6580ec6b7f21d3b2 (diff)
Resolve "Sprachauswahl für Originalfassung der Modul(teil)-Deskriptoren", fixes #4261
Diffstat (limited to 'lib/models/ModuleManagementModel.php')
-rw-r--r--lib/models/ModuleManagementModel.php19
1 files changed, 10 insertions, 9 deletions
diff --git a/lib/models/ModuleManagementModel.php b/lib/models/ModuleManagementModel.php
index 3bd5eb7..88b264f 100644
--- a/lib/models/ModuleManagementModel.php
+++ b/lib/models/ModuleManagementModel.php
@@ -725,25 +725,26 @@ abstract class ModuleManagementModel extends SimpleORMap implements ModuleManage
*/
public static function setContentLanguage($language)
{
- if (!is_array($GLOBALS['MVV_LANGUAGES']['values'][$language])) {
+ if (!is_array(Config::get()->CONTENT_LAGUAGES[$language])) {
throw new InvalidArgumentException();
}
- $locale = $GLOBALS['MVV_LANGUAGES']['values'][$language]['locale'];
- I18NString::setContentLanguage($locale);
+ I18NString::setContentLanguage($language);
self::$language = $language;
}
- public function getAvailableTranslations()
+ public function getAvailableTranslations(string $original_language): array
{
- $translations[] = $GLOBALS['MVV_LANGUAGES']['default'];
+ $translations = [];
$stmt = DBManager::get()->prepare('SELECT DISTINCT `lang` '
. 'FROM i18n '
. 'WHERE `object_id` = ? AND `table` = ?');
$stmt->execute([$this->id, $this->db_table()]);
- foreach ($stmt->fetchAll() as $locale) {
- $language = mb_strtoupper(mb_strstr($locale['lang'], '_', true));
- if (is_array($GLOBALS['MVV_LANGUAGES']['values'][$language])) {
- $translations[] = $language;
+ $languages = array_merge([$original_language],
+ $stmt->fetchAll(PDO::FETCH_COLUMN));
+ $content_languages = Config::get()->CONTENT_LANGUAGES;
+ foreach ($languages as $code) {
+ if (is_array($content_languages[$code])) {
+ $translations[] = $code;
}
}
return $translations;