Skip to content

Commit 1c00d9c

Browse files
ioigoumenikosev
authored andcommitted
Refactor footer.php
1 parent 924edd5 commit 1c00d9c

3 files changed

Lines changed: 93 additions & 79 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ This version is compatible with [SimpleSAMLphp v1.18](https://simplesamlphp.org/
3434
- Apply modern array syntax to comply with [SimpleSAMLphp v1.17](https://simplesamlphp.org/docs/stable/simplesamlphp-upgrade-notes-1.17)
3535
- Comply to [markdownlint rules](https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md)
3636
- Move default loader spinner into a shared element
37+
- Move language list into a shared element
3738

3839
<!-- markdownlint-disable line-length -->
3940

themes/ssp/default/includes/footer.php

Lines changed: 6 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<?php
2+
23
$themeConfig = SimpleSAML\Configuration::getConfig('module_themevanilla.php');
34
$enableCookiesBanner = $themeConfig->getValue('enable_cookies_banner');
45

@@ -40,88 +41,14 @@
4041
<footer class="ssp-footer text-center">
4142
<div class="container ssp-footer--container">
4243
<div class="row ssp-content-group--footer">
43-
44+
<!-- Add language bar -->
4445
<?php
46+
$includeLanguageBar = (!empty($_POST)) ? false : true;
47+
$includeLanguageBar = (isset($this->data['hideLanguageBar']) && $this->data['hideLanguageBar'] === true)
48+
? false : true;
4549

46-
$includeLanguageBar = true;
47-
if (!empty($_POST)) {
48-
$includeLanguageBar = false;
49-
}
50-
if (isset($this->data['hideLanguageBar']) && $this->data['hideLanguageBar'] === true) {
51-
$includeLanguageBar = false;
52-
}
5350
if ($includeLanguageBar) {
54-
$languages = $this->getLanguageList();
55-
if (count($languages) > 1) {
56-
echo '<div class="col-sm-3 ssp-footer__item">
57-
<div class="dropup ssp-footer__item__lang">';
58-
$langNames = [
59-
'no' => 'Bokmål', // Norwegian Bokmål
60-
'nn' => 'Nynorsk', // Norwegian Nynorsk
61-
'se' => 'Sámegiella', // Northern Sami
62-
'da' => 'Dansk', // Danish
63-
'en' => 'English',
64-
'de' => 'Deutsch', // German
65-
'sv' => 'Svenska', // Swedish
66-
'fi' => 'Suomeksi', // Finnish
67-
'es' => 'Español', // Spanish
68-
'ca' => 'Català', // Catalan
69-
'fr' => 'Français', // French
70-
'it' => 'Italiano', // Italian
71-
'nl' => 'Nederlands', // Dutch
72-
'lb' => 'Lëtzebuergesch', // Luxembourgish
73-
'cs' => 'Čeština', // Czech
74-
'sl' => 'Slovenščina', // Slovensk
75-
'lt' => 'Lietuvių kalba', // Lithuanian
76-
'hr' => 'Hrvatski', // Croatian
77-
'hu' => 'Magyar', // Hungarian
78-
'pl' => 'Język polski', // Polish
79-
'pt' => 'Português', // Portuguese
80-
'pt-br' => 'Português brasileiro', // Portuguese
81-
'ru' => 'русский язык', // Russian
82-
'et' => 'eesti keel', // Estonian
83-
'tr' => 'Türkçe', // Turkish
84-
'el' => 'ελληνικά', // Greek
85-
'ja' => '日本語', // Japanese
86-
'zh' => '简体中文', // Chinese (simplified)
87-
'zh-tw' => '繁體中文', // Chinese (traditional)
88-
'ar' => 'العربية', // Arabic
89-
'he' => 'עִבְרִית', // Hebrew
90-
'id' => 'Bahasa Indonesia', // Indonesian
91-
'sr' => 'Srpski', // Serbian
92-
'lv' => 'Latviešu', // Latvian
93-
'ro' => 'Românește', // Romanian
94-
'eu' => 'Euskara', // Basque
95-
'af' => 'Afrikaans', // Afrikaans
96-
'zu' => 'IsiZulu', // Zulu
97-
'xh' => 'isiXhosa', // Xhosa
98-
];
99-
100-
$textArray = [];
101-
foreach ($languages as $lang => $current) {
102-
$lang = strtolower($lang);
103-
if ($current) {
104-
$langCurrent = $langNames[$lang];
105-
} else {
106-
$textArray[] = '<li class="ssp-dropdown__two_cols--item"><a href="'
107-
. htmlspecialchars(
108-
\SimpleSAML\Utils\HTTP::addURLParameters(
109-
\SimpleSAML\Utils\HTTP::getSelfURL(),
110-
[$this->getTranslator()->getLanguage()->getLanguageParameterName() => $lang]
111-
)
112-
)
113-
. '">' . $langNames[$lang] . '</a></li>';
114-
}
115-
}
116-
echo '<button class="ssp-btn btn ssp-btn__footer dropdown-toggle" type="button" '
117-
. 'data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">'
118-
. $langCurrent
119-
. '<span class="caret"></span>
120-
</button>
121-
<ul class="dropdown-menu dropdown-menu-left ssp-dropdown__two_cols" aria-labelledby="dropdownMenu1">';
122-
echo join(' ', $textArray);
123-
echo '</ul></div></div>'; // /dropup /col-sm-4
124-
}
51+
$this->includeAtTemplateBase('includes/language_bar.php');
12552
}
12653

12754
?>
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
<?php
2+
3+
// Language names dictionary
4+
$langNames = [
5+
'no' => 'Bokmål', // Norwegian Bokmål
6+
'nn' => 'Nynorsk', // Norwegian Nynorsk
7+
'se' => 'Sámegiella', // Northern Sami
8+
'da' => 'Dansk', // Danish
9+
'en' => 'English',
10+
'de' => 'Deutsch', // German
11+
'sv' => 'Svenska', // Swedish
12+
'fi' => 'Suomeksi', // Finnish
13+
'es' => 'Español', // Spanish
14+
'ca' => 'Català', // Catalan
15+
'fr' => 'Français', // French
16+
'it' => 'Italiano', // Italian
17+
'nl' => 'Nederlands', // Dutch
18+
'lb' => 'Lëtzebuergesch', // Luxembourgish
19+
'cs' => 'Čeština', // Czech
20+
'sl' => 'Slovenščina', // Slovensk
21+
'lt' => 'Lietuvių kalba', // Lithuanian
22+
'hr' => 'Hrvatski', // Croatian
23+
'hu' => 'Magyar', // Hungarian
24+
'pl' => 'Język polski', // Polish
25+
'pt' => 'Português', // Portuguese
26+
'pt-br' => 'Português brasileiro', // Portuguese
27+
'ru' => 'русский язык', // Russian
28+
'et' => 'eesti keel', // Estonian
29+
'tr' => 'Türkçe', // Turkish
30+
'el' => 'ελληνικά', // Greek
31+
'ja' => '日本語', // Japanese
32+
'zh' => '简体中文', // Chinese (simplified)
33+
'zh-tw' => '繁體中文', // Chinese (traditional)
34+
'ar' => 'العربية', // Arabic
35+
'he' => 'עִבְרִית', // Hebrew
36+
'id' => 'Bahasa Indonesia', // Indonesian
37+
'sr' => 'Srpski', // Serbian
38+
'lv' => 'Latviešu', // Latvian
39+
'ro' => 'Românește', // Romanian
40+
'eu' => 'Euskara', // Basque
41+
'af' => 'Afrikaans', // Afrikaans
42+
'zu' => 'IsiZulu', // Zulu
43+
'xh' => 'isiXhosa', // Xhosa
44+
];
45+
46+
$languages = $this->getLanguageList();
47+
48+
if (count($languages) > 1) : ?>
49+
<div class="col-sm-3 ssp-footer__item">
50+
<div class="dropup ssp-footer__item__lang">
51+
<?php
52+
$textArray = [];
53+
foreach ($languages as $lang => $current) {
54+
$lang = strtolower($lang);
55+
if ($current) {
56+
$langCurrent = $langNames[$lang];
57+
} else {
58+
$textArray[] =
59+
'<li class="ssp-dropdown__two_cols--item">'
60+
. '<a href="'
61+
. htmlspecialchars(
62+
\SimpleSAML\Utils\HTTP::addURLParameters(
63+
\SimpleSAML\Utils\HTTP::getSelfURL(),
64+
[$this->getTranslator()->getLanguage()->getLanguageParameterName() => $lang]
65+
)
66+
)
67+
. '">' . $langNames[$lang] . '</a></li>';
68+
}
69+
}
70+
?>
71+
<button
72+
class="ssp-btn btn ssp-btn__footer dropdown-toggle"
73+
type="button"
74+
data-toggle="dropdown"
75+
aria-haspopup="true"
76+
aria-expanded="true"
77+
>
78+
<?= $langCurrent ?>
79+
<span class="caret"></span>
80+
</button>
81+
<ul class="dropdown-menu dropdown-menu-left ssp-dropdown__two_cols" aria-labelledby="dropdownMenu1">
82+
<?= implode(' ', $textarray) ?>
83+
</ul>
84+
</div> <!-- dropup -->
85+
</div> <!-- col-sm-4 -->
86+
<?php endif; ?>

0 commit comments

Comments
 (0)