From 6e456bc63a039905abc6677f1adaa8aff774f8a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Sch=C3=BCttl=C3=B6ffel?= <schuettloeffel@zqs.uni-hannover.de> Date: Mon, 26 Feb 2024 10:57:47 +0000 Subject: [PATCH] Resolve "/shared/modul/description/ verwendet falschen Sprachicon Pfad" Closes #2757 Merge request studip/studip!1869 --- app/views/materialien/files/add_dokument.php | 2 +- app/views/materialien/files/details.php | 164 +++++++++---------- app/views/materialien/files/index.php | 2 +- app/views/materialien/files/range.php | 2 +- app/views/module/module/details.php | 3 +- app/views/module/module/modul.php | 2 +- app/views/module/module/module.php | 3 +- app/views/module/module/modulteil.php | 2 +- app/views/shared/deskriptor_language.php | 2 +- app/views/shared/modul/description.php | 2 +- lib/classes/MVV.class.php | 13 ++ 11 files changed, 104 insertions(+), 93 deletions(-) diff --git a/app/views/materialien/files/add_dokument.php b/app/views/materialien/files/add_dokument.php index effdde9c08a..e53d9171701 100644 --- a/app/views/materialien/files/add_dokument.php +++ b/app/views/materialien/files/add_dokument.php @@ -24,7 +24,7 @@ <? foreach($GLOBALS['MVV_LANGUAGES']['values'] as $key => $entry) : ?> <tr> <td rowspan="2"> - <?= Assets::img('languages/lang_' . mb_strtolower($key) . '.gif') ?> + <?= Assets::img(MVV::getContentLanguageImagePath($key), ['alt' => $entry['name'], 'size' => 24]) ?> </td> <td> <label> diff --git a/app/views/materialien/files/details.php b/app/views/materialien/files/details.php index af72b0a2c32..c3954a83921 100644 --- a/app/views/materialien/files/details.php +++ b/app/views/materialien/files/details.php @@ -1,82 +1,82 @@ -<td colspan="10"> - <table class="default nohover"> - <tr> - <td><?= _('Jahr'); ?></td> - <td><?= htmlReady($doc_year); ?></td> - </tr> - - <tr> - <td><?= _('Art der Datei '); ?></td> - <td><?= htmlReady($GLOBALS['MVV_DOCUMENTS']['TYPE']['values'][$doc_type]['name']); ?></td> - </tr> - - <tr> - <td><?= _('Dokumente'); ?></td> - <td> - <ul class="list-unstyled"> - <? foreach($documents as $key => $document): ?> - <li> - <?= Assets::img('languages/lang_' . mb_strtolower($key) . '.gif') ?> - <b><?= htmlReady($document->getDisplayName()); ?></b> - <? if($document->file_ref->isLink()): ?> - <a href="<?= htmlReady($document->getFilename()); ?>" target="_blank"><?= htmlReady($document->getFilename()); ?></a> - <? else: ?> - <?= htmlReady($document->getFilename()); ?> - <? endif; ?> - </li> - <? endforeach; ?> - </ul> - </td> - </tr> - - <tr> - <td><?= _('Kategoriezuordnung'); ?></td> - <td><?= htmlReady($GLOBALS['MVV_DOCUMENTS']['CATEGORY']['values'][$doc_cat]['name']); ?></td> - </tr> - - <tr> - <td><?= _('Schlagwörter'); ?></td> - <td> - <? if ($doc_tags): ?> - <ul> - <? foreach(explode(';', $doc_tags) as $tag): ?> - <li><?= htmlReady($GLOBALS['MVV_DOCUMENTS']['TAG']['values'][$tag]['name']); ?></li> - <? endforeach; ?> - </ul> - <? endif; ?> - </td> - </tr> - - <tr> - <td><?= _('Sichtbarkeit nach außen'); ?></td> - <td><?= $doc_extvisible?_('sichtbar'):_('unsichtbar'); ?></td> - </tr> - - <tr> - <td><?= _('Zuordnungen'); ?></td> - <td> - - - <? if (!sizeof($relations)) : ?> - <?= _('Das Dokument wurde noch nicht referenziert.') ?> - <? else : ?> - <? foreach ($relations as $object_type => $relation) : ?> - <strong><?= htmlReady($object_type::getClassDisplayName()) ?></strong> - <ul class="default"> - <? foreach ($relation as $rel) : ?> - <? $related_object = $object_type::find($rel['range_id']) ?> - <li> - <a href="<?= $this->controller->url_for('materialien/files/dispatch', mb_strtolower($object_type), $rel['range_id']) ?>"> - <?= $related_object->getDisplayName() ?> - </a> - </li> - <? endforeach; ?> - </ul> - <? endforeach; ?> - <? endif; ?> - - </td> - </tr> - - </table> -</td> +<td colspan="10"> + <table class="default nohover"> + <tr> + <td><?= _('Jahr'); ?></td> + <td><?= htmlReady($doc_year); ?></td> + </tr> + + <tr> + <td><?= _('Art der Datei '); ?></td> + <td><?= htmlReady($GLOBALS['MVV_DOCUMENTS']['TYPE']['values'][$doc_type]['name']); ?></td> + </tr> + + <tr> + <td><?= _('Dokumente'); ?></td> + <td> + <ul class="list-unstyled"> + <? foreach($documents as $key => $document): ?> + <li> + <?= Assets::img(MVV::getContentLanguageImagePath($key), ['size' => 24]) ?> + <b><?= htmlReady($document->getDisplayName()); ?></b> + <? if($document->file_ref->isLink()): ?> + <a href="<?= htmlReady($document->getFilename()); ?>" target="_blank"><?= htmlReady($document->getFilename()); ?></a> + <? else: ?> + <?= htmlReady($document->getFilename()); ?> + <? endif; ?> + </li> + <? endforeach; ?> + </ul> + </td> + </tr> + + <tr> + <td><?= _('Kategoriezuordnung'); ?></td> + <td><?= htmlReady($GLOBALS['MVV_DOCUMENTS']['CATEGORY']['values'][$doc_cat]['name']); ?></td> + </tr> + + <tr> + <td><?= _('Schlagwörter'); ?></td> + <td> + <? if ($doc_tags): ?> + <ul> + <? foreach(explode(';', $doc_tags) as $tag): ?> + <li><?= htmlReady($GLOBALS['MVV_DOCUMENTS']['TAG']['values'][$tag]['name']); ?></li> + <? endforeach; ?> + </ul> + <? endif; ?> + </td> + </tr> + + <tr> + <td><?= _('Sichtbarkeit nach außen'); ?></td> + <td><?= $doc_extvisible?_('sichtbar'):_('unsichtbar'); ?></td> + </tr> + + <tr> + <td><?= _('Zuordnungen'); ?></td> + <td> + + + <? if (!sizeof($relations)) : ?> + <?= _('Das Dokument wurde noch nicht referenziert.') ?> + <? else : ?> + <? foreach ($relations as $object_type => $relation) : ?> + <strong><?= htmlReady($object_type::getClassDisplayName()) ?></strong> + <ul class="default"> + <? foreach ($relation as $rel) : ?> + <? $related_object = $object_type::find($rel['range_id']) ?> + <li> + <a href="<?= $this->controller->url_for('materialien/files/dispatch', mb_strtolower($object_type), $rel['range_id']) ?>"> + <?= $related_object->getDisplayName() ?> + </a> + </li> + <? endforeach; ?> + </ul> + <? endforeach; ?> + <? endif; ?> + + </td> + </tr> + + </table> +</td> diff --git a/app/views/materialien/files/index.php b/app/views/materialien/files/index.php index 10f8d7a7e39..1b00cec3d4d 100644 --- a/app/views/materialien/files/index.php +++ b/app/views/materialien/files/index.php @@ -47,7 +47,7 @@ </td> <td class="dont-hide"> <? foreach ($mvv_file->file_refs as $fileref) : ?> - <?= Assets::img('languages/lang_' . mb_strtolower($fileref->file_language) . '.gif') ?> + <?= Assets::img(MVV::getContentLanguageImagePath($fileref->file_language), ['size' => '24']) ?> <? endforeach; ?> </td> <td class="dont-hide"><?= htmlReady($GLOBALS['MVV_DOCUMENTS']['TYPE']['values'][$mvv_file->type]['name']) ?></td> diff --git a/app/views/materialien/files/range.php b/app/views/materialien/files/range.php index 8044b7acfba..bbf24755dd7 100644 --- a/app/views/materialien/files/range.php +++ b/app/views/materialien/files/range.php @@ -63,7 +63,7 @@ </td> <td> <? foreach ($mvv_file->file_refs as $fileref) : ?> - <?= Assets::img('languages/lang_' . mb_strtolower($fileref->file_language) . '.gif') ?> + <?= Assets::img(MVV::getContentLanguageImagePath($fileref->file_language), ['size' => 24]) ?> <? endforeach; ?> </td> <td><?= htmlReady($GLOBALS['MVV_DOCUMENTS']['TYPE']['values'][$mvv_file->type]['name']); ?></td> diff --git a/app/views/module/module/details.php b/app/views/module/module/details.php index 694d8affd92..4509d520e34 100644 --- a/app/views/module/module/details.php +++ b/app/views/module/module/details.php @@ -23,8 +23,7 @@ <? foreach ($modulteil->deskriptoren->getAvailableTranslations() as $language) : ?> <? $lang = $GLOBALS['MVV_MODUL_DESKRIPTOR']['SPRACHE']['values'][$language]; ?> <a href="<?= $controller->action_link('modulteil/' . join('/', [$modulteil->id, $institut_id]), ['display_language' => $language]) ?>"> - <img src="<?= Assets::image_path('languages/lang_' . mb_strtolower($language) . '.gif') ?>" - alt="<?= $lang['name'] ?>" title="<?= $lang['name'] ?>"> + <?= Assets::img(MVV::getContentLanguageImagePath($language), ['alt' => $lang['name'], 'size' => 24]) ?> </a> <? endforeach; ?> <? endif; ?> diff --git a/app/views/module/module/modul.php b/app/views/module/module/modul.php index ba76e33eae4..e209a1808b4 100644 --- a/app/views/module/module/modul.php +++ b/app/views/module/module/modul.php @@ -694,6 +694,6 @@ if ($GLOBALS['MVV_MODUL']['SPRACHE']['default'] != $display_language) { </form> <? if (!$def_lang) : ?> <script> - jQuery('#modul_form').find('textarea, input[type=text]').after('<div style="padding-top:10px;"><a href="#" title="<?= _('Originalfassung anzeigen') ?>" class="mvv-show-original" data-type="modul"><img src="<?= Assets::image_path('languages/lang_' . mb_strtolower($modul->getDefaultLanguage()) . '.gif') ?>" alt="<?= _('Originalfassung') ?>"></a></div>'); + jQuery('#modul_form').find('textarea, input[type=text]').after('<div style="padding-top:10px;"><a href="#" title="<?= _('Originalfassung anzeigen') ?>" class="mvv-show-original" data-type="modul"><?= Assets::img(MVV::getContentLanguageImagePath($modul->getDefaultLanguage()), ['alt' => _('Originalfassung'), 'size' => 24]) ?></a></div>'); </script> <? endif; ?> diff --git a/app/views/module/module/module.php b/app/views/module/module/module.php index 09cd3f3de2c..271e3f9d432 100644 --- a/app/views/module/module/module.php +++ b/app/views/module/module/module.php @@ -47,8 +47,7 @@ <? foreach ($languages as $language) : ?> <? $lang = $GLOBALS['MVV_MODUL_DESKRIPTOR']['SPRACHE']['values'][$language]; ?> <a href="<?= $controller->action_link('modul/' . $modul->id . '/', ['display_language' => $language]) ?>"> - <img src="<?= Assets::image_path('languages/lang_' . mb_strtolower($language) . '.gif') ?>" - alt="<?= $lang['name'] ?>" title="<?= $lang['name'] ?>"> + <?= Assets::img(MVV::getContentLanguageImagePath($language), ['alt' => $lang['name'], 'size' => 24]) ?> </a> <? endforeach; ?> <? endif; ?> diff --git a/app/views/module/module/modulteil.php b/app/views/module/module/modulteil.php index cbd12797a7d..ad68edee929 100644 --- a/app/views/module/module/modulteil.php +++ b/app/views/module/module/modulteil.php @@ -478,6 +478,6 @@ if ($GLOBALS['MVV_MODULTEIL']['SPRACHE']['default'] != $display_language) { </form> <? if (!$def_lang) : ?> <script> - jQuery('#modulteil_form').find('textarea, input[type=text]').after('<div style="padding-top:10px;"><a href="#" title="<?= _('Originalfassung anzeigen') ?>" class="mvv-show-original" data-type="modulteil"><img src="<?= Assets::image_path('languages/lang_' . mb_strtolower($modul->getDefaultLanguage()) . '.gif') ?>" alt="<?= _('Originalfassung') ?>"></a></div>'); + jQuery('#modulteil_form').find('textarea, input[type=text]').after('<div style="padding-top:10px;"><a href="#" title="<?= _('Originalfassung anzeigen') ?>" class="mvv-show-original" data-type="modulteil"><?= Assets::img(MVV::getContentLanguageImagePath($modul->getDefaultLanguage()), ['alt' => _('Originalfassung'), 'size' => 24]) ?></a></div>'); </script> <? endif; ?> diff --git a/app/views/shared/deskriptor_language.php b/app/views/shared/deskriptor_language.php index ff2a43398c4..44cdb6502f3 100644 --- a/app/views/shared/deskriptor_language.php +++ b/app/views/shared/deskriptor_language.php @@ -3,7 +3,7 @@ <? foreach ($GLOBALS[strtoupper($table)]['SPRACHE']['values'] as $lang => $value) : ?> <div style="padding-top:10px;"> <a href="<?= URLHelper::getLink($link, ['display_language' => $lang]) ?>"> - <img src="<?= Assets::image_path('languages/lang_' . mb_strtolower($lang) . '.gif') ?>" alt="<?= $value['name'] ?>"> + <?= Assets::img(MVV::getContentLanguageImagePath($lang), ['alt' => $value['name'], 'size' => 24]) ?> <?= $value['name'] ?> (<?= in_array($lang, $languages) ? 'bearbeiten' : 'neu anlegen' ?>) <?= $lang == $sprache ? Icon::create('accept', 'accept', [])->asImg() : '' ?> </a> diff --git a/app/views/shared/modul/description.php b/app/views/shared/modul/description.php index df6425f3b5f..59512bd94ea 100644 --- a/app/views/shared/modul/description.php +++ b/app/views/shared/modul/description.php @@ -3,7 +3,7 @@ <? foreach ($modul->deskriptoren->getAvailableTranslations() as $language) : ?> <? $lang = $GLOBALS['MVV_MODUL_DESKRIPTOR']['SPRACHE']['values'][$language]; ?> <a data-dialog="size=auto;title='<?= htmlReady($modul->getDisplayName()) ?>'" href="<?= $controller->action_link('description/' . $modul->id . '/', ['display_language' => $language]) ?>"> - <img src="<?= Assets::image_path('languages/lang_' . mb_strtolower($language) . '.gif') ?>" alt="<?= $lang['name'] ?>" title="<?= $lang['name'] ?>"> + <?= Assets::img(MVV::getContentLanguageImagePath($language), ['alt' => $lang['name'], 'size' => 24]) ?> </a> <? endforeach; ?> </div> diff --git a/lib/classes/MVV.class.php b/lib/classes/MVV.class.php index a9274986659..67bbbebb167 100644 --- a/lib/classes/MVV.class.php +++ b/lib/classes/MVV.class.php @@ -833,4 +833,17 @@ class MVV implements Loggable { return $result; } + /** + * Returns imagepath for given language, used by MVV + * First tries $GLOBALS['CONTENT_LANGUAGES'], if not defined returns hardcoded path + * + * @param string $language e.g. 'DE' + * @return string path to language icon + */ + public static function getContentLanguageImagePath($language): string + { + $content_language = $GLOBALS['MVV_MODUL_DESKRIPTOR']['SPRACHE']['values'][$language]['content_language']; + return 'languages/' . ($GLOBALS['CONTENT_LANGUAGES'][$content_language]?$GLOBALS['CONTENT_LANGUAGES'][$content_language]['picture']:'lang_' . mb_strtolower($language) . '.gif'); + } + } -- GitLab