GetDb(); // Parameter "lang" Array bilden if(!empty($params['lang'])) $lang = explode (",", $params['lang']); // Parameter "delimiter" String mit span-Tag und Klasse bilden if(!empty($params['tag'])) $tag = ''.$params['tag'].''; // Seitenposition in der Hierarchie ermitteln. $currentposition = "00001.00002.00003"; $currentposition = $gCms->variables['position']; // Array mit "." als delimiter bilden $currentposition = explode (".", $currentposition); // Wieder String bilden aber ohne index 0. $newposition = "00002.00003."; for ($j = 1; $j < count ($currentposition); $j++) $newposition .= $currentposition[$j] . "."; // $dbresult = array(); // Datenbankabfrage: Spalte "hierarchy_path" auswählen und Zeile liefern mit hierarchy = "00001.00002.00003", "00002.00002.00003" und "00003.00002.00003" $query = "SELECT hierarchy_path FROM " . cms_db_prefix()."content WHERE hierarchy=?"; // for ($i = 0; $i < count ($lang); $i++) { // $dbresult = &$db->Execute($query, array(substr ("0000". ($i+1) . "." . $newposition, 0, -1))); // if ($dbresult) $row[$i] = $dbresult->FetchRow(); // Datenbankabfrage ende // Ausgabe $result .= '' . $lang[$i] . '' . $tag; } // Für 2-sprachigen Gebrauch if ($params['tag'] == "none") $result = '' . $lang[substr ($currentposition[0],4)%2] . '' . $tag; // den letzen Seperator entfernen und Ergebnis in div container einschließen $result = '
' . substr ($result, 0, - strlen ($tag)) . '
'; return $result; } function smarty_cms_help_function_multilanguage() { ?>

Was ist der multilanguage-Tag und wie funktioniert er.

Dieser Tag erzeugt Hyperinks. Damit werden Seiten zur gleichen Subhierarchie verlinkt. Somit ist es möglich jede Seite in der definierten Sprache direkt anzuklicken.

Wie wird der Tag verwendet?

Als erstes wird für jede Sprache eine eigene Seite (Ordner) erstellt. Diese Seiten können dann Unterseiten enthalten, müssen aber die gleiche Hierarchie aufweisen wie alle anderen Seiten mit der jeweiligen Sprache. Die tiefe der Hierarchie spielt keine Rolle.
Die Hierarchie muss mit Position 1 beginnen!

zB.:

Als zweites dann den Tag {multilanguage} mit den benötigten und den optionalen Parameter ins Template einfügen.

Benötigte Parameter:

lang

Dieser Parameter definiert den Linknamen . Mehrere Linknamen werden mit Komma getrennt eingefügt.
Die Reihenfolge der Linknamen bestimmt die Position der Site-Hierarchie.

Optionale Parameter:

tag

Das Trennzeichen das die Linknamen im Frontend trennt.

z.B.: {multilanguage lang="Deutsch,English,France" tag=" | "}

Wird tag="none" übergeben. Wird automatisch zwischen der 1. und der 2. Sprache die angegeben ist umgeschaltet. Nur für 2-sprachigen Betrieb geeignet.
Es werden nur die ersten 2 Sprachen die übergeben werden verwendet.

Styling:

class

div#multilanguage span.separator

Author: Oliver Heiduk <oliver.heiduk@akom.de>

Version: 1.1

Change History:

Version 1.1
Auto Link implementiert.
Es wird nur noch ein Tag benötigt.
Die Angezeigten Linknamen werden kommasepariert als Parameter übergeben.
Ermitteln der Position automatisch über die Reihenfolge der Linknamen.
Parameter für Trenner implementiert.
Separator in span mit class "separator" gebettet.
In DIV mit der ID "multilanguage" gebettet.
Version 1.0
Plugin für mehrsprachigen Seiten entwickelt.

To do
Diesen Text richtig formulieren ;-)
Ausgiebig testen.