Zeichen zwischen Flaggen

Hallo,

ich möchte gerne zwischen die jeweiligen Flaggen (bzw. Sprachauswahl) oben links ein Zeichen setzen (|, sog. “vertical line” oder “pipe”). Die Sprachen werden aus dem System mit einer foreach-Abfrage geholt:

[{if $oView->isLanguageLoaded() }]
                    [{foreach from = $oxcmp_lang item = _language}]
							<a id="test_Lang_[{$_language->name}]" class="language[{if $_language->selected}] act[{/if}]" href="[{ oxgetseourl ident=$_language->link params=$oView->getDynUrlParams() }]" hreflang="[{ $_language->abbr }]" title="[{ $_language->name }]">[{$_language->name}]</a>
                    [{/foreach}]
                [{/if}] 

Ich kann also nicht hinter [I][{$_language->name}][/I] eine Pipe setzen, da es sonst so aussehen würde:

[B][U]Deutsch[/U][/B] | [B][U]English[/U][/B] | [B][U]Französisch[/U][/B] |

Die hintere Pipe wäre überflüssig. Schöner wäre:

 [B][U]Deutsch[/U][/B] | [B][U]English[/U][/B] | [B][U]Französisch[/U][/B]

Komme nicht dahinter, wie das gehen soll. Hat jemand eine Lösungsidee?

Viele Grüße
Maike

Hi,

vielleicht eine blöde Überlegung aber könnte funktionieren.

Wenn du die Länge des Arrays $oxcmp_lang auslesen könntest und die Pipe nur einfügst wenn ein count der die Foreach mitzählt eins kleiner ist als die Länge des Arrays könnte es klappen.

Hört sich komisch an ergibt aber meiner Meinung nach Sinn.

Hoffe aber das noch jemand eine schönere Lösung für Dich hat.

Gruß
alkapwn

mit der Auswertung des foreach läßt sich dies schon bemerkstelligen.

Die Smartyfunktion foreach bietet bestimmte Variablen an: http://www.smarty.net/manual/de/language.function.foreach.php

Zur Nutzung muß foreach leicht erweitert werden:
[{foreach from = $oxcmp_lang item = _language name=‘lang’}]

[{/foreach}]

Die Variable “total” kann dann so ausgegeben/geprüft werden:
[{$smarty.foreach.lang.total}]

Dann kann man auch first und last nutzen. Schau dir mal an wie das bei den Währungen gemacht ist, oder:

[{foreach from = $oxcmp_lang item = _language name=flag}]
    <a id="test_Lang_[{$_language->name}]" class="language[{if $_language->selected}] act[{/if}]" href="[{ oxgetseourl ident=$_language->link params=$oView->getDynUrlParams() }]" hreflang="[{ $_language->abbr }]" title="[{ $_language->name }]"><img src="[{$oViewConf->getImageUrl()}]lang/[{ $_language->abbr }].gif" alt="[{$_language->name}]">
    [{if !$smarty.foreach.flag.last}] | [{/if}]
    </a>
[{/foreach}]

Funzt - Danke. :slight_smile:

Super, funktioniert!

Vielen Dank!! :slight_smile: