Sprachlinks im Yaml-Template

“Automatische” Links zu verschiedenen Sprachversionen sind in redaxo mit einem kleinen Zusatztemplate schnell erstellt:

Schritt 1:

Zunächst wird ein neues Template mit folgendem Quellcode erstellt:

<?php
foreach($REX['CLANG'] AS $cLangId=>$cLangName)
{
  if($cLangId != $REX['CUR_CLANG'])
  {
    $cLangUrl .= '<a href="'.rex_getUrl($this->getValue('id'),$cLangId).'">'.$cLangName.'</a> | ';
  }
}
?>

Dieses Template baut die Sprachlinks auf und übergibt sie an die Variable cLangUrl.

Die if-Abfrage generiert für jede eingerichtete Sprache, ausser der gerade aktiven, einen Link. Anpassungen für die Darstellung der Links, z. B. duch gesonderte CSS-Klassen, müssten hier vorgenommen werden.

Schritt 2:

Das Template yaml_layout_inc wird mit folgendem Quelltext erweitert:

// weitere Templates könnten hier eingebunden werden
// -------------------------------------------------

// Template fuer Sprachlinks einbinden
if($cLangUrlTemplateId)
{
  $cLangUrlTemplate = new rex_template($cLangUrlTemplateId);
  include $cLangUrlTemplate->getFile();
}

Schritt 3:

Jetzt wird das neue Template in das Seitentemplate YAML-Layout eingebunden:

...
// optional einzubindende Templates:
$cLangUrlTemplateId='4'; // Sprachlinks einbinden
...

Nun wird nur noch die Variable cLangUrl in den Bereich von YAML-Layout eingesetz, in dem die Sprachlinks erscheinen sollen. Ich habe mich mal für den Footer-Navigationsbereich entschieden:

$footerNavigation = $cLangUrl; // Platzhalter für Navigation im Footer-Bereich

Fertig!

Hinweis: Dieses Template wurde nur in der redaxo-Version 4.2 getestet