Skip to content

Commit 14ef3dd

Browse files
committed
using blocks in langswitcher for better extensibility
1 parent b1b25fc commit 14ef3dd

File tree

3 files changed

+47
-30
lines changed

3 files changed

+47
-30
lines changed

CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# v3.0.3
2+
## mm/dd/2022
3+
4+
1. [](#new)
5+
* Using blocks in `partials/langswitcher.html.twig` to make it easier to extend without having to copy the logic
6+
17
# v3.0.2
28
## 10/05/2022
39

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{{ block('language_block_start') }}
2+
{% set display_format = display_format ?? config.get('plugins.langswitcher.language_display', 'long') %}
3+
4+
{% for language in langswitcher.languages %}
5+
{% set active_class = '' %}
6+
{% set show_language = true %}
7+
{% if language == langswitcher.current %}
8+
{% set active_class = 'active' %}
9+
{% endif %}
10+
{% if langswitcher.translated_routes[language] %}
11+
{% set lang_url = langswitcher.translated_routes[language] ~ page.urlExtension %}
12+
{% else %}
13+
{% set base_lang_url = base_url_simple ~ grav.language.getLanguageURLPrefix(language) %}
14+
{% set lang_url = base_lang_url ~ langswitcher.page_route ~ page.urlExtension %}
15+
{% endif %}
16+
{% set untranslated_pages_behavior = grav.config.plugins.langswitcher.untranslated_pages_behavior %}
17+
{% if untranslated_pages_behavior != 'none' %}
18+
{% set translated_page = langswitcher.translated_pages[language] %}
19+
{% if (not translated_page) or (not translated_page.published) %}
20+
{% if untranslated_pages_behavior == 'redirect' %}
21+
{% set lang_url = url('/') %}
22+
{% elseif untranslated_pages_behavior == 'hide' %}
23+
{% set show_language = false %}
24+
{% endif %}
25+
{% endif %}
26+
{% endif %}
27+
{{ block('language_item') }}
28+
{% endfor %}
29+
{{ block('language_block_end') }}
+12-30
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,15 @@
1-
<ul class="langswitcher">
2-
{% set display_format = display_format ?? config.get('plugins.langswitcher.language_display', 'long') %}
3-
4-
{% for language in langswitcher.languages %}
5-
{% set active_class = '' %}
6-
{% set show_language = true %}
7-
{% if language == langswitcher.current %}
8-
{% set active_class = 'active' %}
9-
{% endif %}
10-
{% if langswitcher.translated_routes[language] %}
11-
{% set lang_url = langswitcher.translated_routes[language] ~ page.urlExtension %}
12-
{% else %}
13-
{% set base_lang_url = base_url_simple ~ grav.language.getLanguageURLPrefix(language) %}
14-
{% set lang_url = base_lang_url ~ langswitcher.page_route ~ page.urlExtension %}
15-
{% endif %}
16-
{% set untranslated_pages_behavior = grav.config.plugins.langswitcher.untranslated_pages_behavior %}
17-
{% if untranslated_pages_behavior != 'none' %}
18-
{% set translated_page = langswitcher.translated_pages[language] %}
19-
{% if (not translated_page) or (not translated_page.published) %}
20-
{% if untranslated_pages_behavior == 'redirect' %}
21-
{% set lang_url = url('/') %}
22-
{% elseif untranslated_pages_behavior == 'hide' %}
23-
{% set show_language = false %}
24-
{% endif %}
25-
{% endif %}
26-
{% endif %}
1+
{% extends 'partials/langswitcher-logic.html.twig' %}
272

28-
{% if show_language %}
29-
<li><a href="{{ lang_url ~ uri.params ~ (uri.query|length > 1 ? '?' ~ uri.query) }}" class="external {{ active_class }}">{% include 'partials/langswitcher-' ~ display_format ~ '.html.twig' %}</a></li>
30-
{% endif %}
3+
{% block language_block_start %}
4+
<ul class="langswitcher">
5+
{% endblock %}
316

32-
{% endfor %}
7+
{% block language_block_end %}
338
</ul>
9+
{% endblock %}
10+
11+
{% block language_item %}
12+
{% if show_language %}
13+
<li><a href="{{ lang_url ~ uri.params ~ (uri.query|length > 1 ? '?' ~ uri.query) }}" class="external {{ active_class }}">{% include 'partials/langswitcher-' ~ display_format ~ '.html.twig' %}</a></li>
14+
{% endif %}
15+
{% endblock %}

0 commit comments

Comments
 (0)