Ich möchte die Standardausgabe von Drupal 8 von Links in einer bestimmten Situation, dem Sprachumschalter, ändern. Idealerweise möchte ich dies in einer Zweigvorlage tun können und muss keine massive PHP-Datei erstellen, die das gesamte Link-Generierungssystem überschreibt, und eine GROSSE hinzufügen, wenn ich sie überschreiben muss.
Ich denke, das Ausgabelayout sollte in der Zweigvorlage ähnlich wie bei dieser Antwort steuerbar sein (diese Antwort gibt für jede Sprache dieselbe URL aus).
Ich verwende Bootstrap als Basisthema, daher möchte ich das Bootstrap-Markup für meine Links verwenden (btn btn-primary, Dropdown).
Hier ist mein Code, den ich machen möchte links--language-block.html.twig
{%- if links|length == 2 -%}
{# show only alternate language button #}
{%- for key, item in links -%}
{%- if not item.attributes['#options']['set_active_class'] -%} {# <--- this is always true!? #}
<a href="{{ item.link['#url'] }}" class="btn btn-primary">{{ item.link['#title'] }}</a> {# #url is always the same what ever the language it is pointing to! #}
{%- endif -%}
{%- endfor -%}
{%- elseif links|length > 2 -%}
{# show selected language in button and other languages in drop down #}
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">{{ selectedLanguage }}<span class="caret"></span></button>
<ul class="dropdown-menu">
{% for key, item in links %}
{%- if not item.attributes['#options']['set_active_class'] -%} {# <--- this is always true!? #}
<li><a href="{{ item.link['#url'] }}">{{ item.link['#title'] }}</a></li>
{% endif %}
{% endfor %}
</ul>
{%- endif -%}
Hat jemand eine Idee, wie das geht?
quelle