[Erledigt]: Gewählte Sprache und Menü

Begonnen von Alex__, 10 April 2008, 19:35:45

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Alex__

Hallo liebe PragmaMx-Gemeinde,

wie könnte man es am geschicktesten anstellen, je nach gewählter Sprache, ein entsprechendes individuelles Menü zu laden. Dieses Menü wird über das Theme eingefügt, d.h. es wird wohl über eine bedingte Anweisung geschehen müssen.

Wie kann man herausfinden, welche Sprache gewählt ist? Gibt es vielleicht eine Systemvariable in Pragma?

Besten Dank und lieben Gruß,

Alex

Alex__

Hallo liebe PragmaMx-Gemeinde,

oben beschriebenes Problem habe ich wie folgt gelöst:

Die Navi habe ich dabei direkt in die Datei theme.html integriert und die Logik der Navigation (d.h. die Javascript-Datei) wird über den body geladen. Zu modifizieren sind die beiden Dateien:


  • functions.php
  • theme.php

beide jeweils im Ordner des Themes zu finden.

In der Datei theme.html muss man einen Platzhalter an der entsprechenden Position für die Navi einfügen. In meinem Fall habe ich die komplette Navigation gegen {Navi} ausgetauscht. Solcher Platzhalter sind allen, die bereits eigene Themes fabriziert haben wohl bekannt. In der Datei functions.php werden die Platzhalter allesamt ersetzt durch das Ergebnis (d.h. den return) eines Funktionsaufrufes.

Entsprechend habe ich in der functions.php eine weitere Zeile (die letzte) eingefügt:


function theme_define_placeholders()
{
    $part[] = array("{VIEWBENCH}", mxViewBench());
    $part[] = array("{FOOTMESSAGE}", footmsg(1, 0));
    $part[] = array("{CURRENTPATH}", mx_theme_currentpath());
    $part[] = array("{SEARCHFORM}", mx_theme_searchform());
    $part[] = array("{LOGINFORM}", mx_theme_loginform());
    $part[] = array("{SHOWDATE}", mx_show_date());
    $part[] = array("{SHOWTIME}", mx_show_time());
    $part[] = array("{SHOWTOTALUSER}", mx_total_user_online());
    $part[] = array("{NAVI}", mx_Navi());
....
}


Für die übrigen Platzhalter, wie z.B. {CURRENTPATH} sind die dazu korrespondierenden Funktionen bereits definiert. Entsprechend muss man also noch


function mx_Navi()
{     
      $lang = $_COOKIE['lang'];
      if ($lang == "german"){
           $navi = ...
      }
      else{
           $navi = ...
      }
      return $navi;


In der ersten Zeile des Funktionsrumpfes weist man die zur Zeit gewählte Sprache der Variablen $lang zu. Dadurch ist es möglich je nach gewählter Sprache eine differente Navi zu laden.

LG
Alex