TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

jetzt buchen

language abfrage (if) um verschiedene ts zu benutzen


Autor Nachricht
Verfasst am: 15. 12. 2011 [14:56]
Shatti
Themenersteller
Dabei seit: 01.09.2011
Beiträge: 10
hey leute,

also ich hab schon ein wenig herumgesucht wie man die momentane sprache im frontend überprüfen kann, allerdings steige ich nicht durch die verwendung von if-abfragen in typoscript.

ich habe eine typo3 seite, die sich auf deutsch oder englisch schalten lässt.

HTML
<a href="index.php?id= | &L=0"><img src="fileadmin/images/de.jpg"></a>

für deutsch und
HTML
<a href="index.php?id= | &L=1"><img src="fileadmin/images/gb.jpg">


die texte auf den seiten lassen sich ganz easy austauschen wenn man umschaltet, allerdings macht das ts, das mein menü erzeugt mir probleme.

folgendes ts habe ich um mein subnavi aufzubauen:
TYPOSCRIPT
[globalVar = GP:L = 0]
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
 
[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = en
config.locale_all = en_EN
[global]
 
10.subparts.GRAFIK = HMENU
  10.subparts.GRAFIK {
    special = list   
    special.value = 6,7,8,9,125,11
    1 = GMENU
    1 {
      noBlur = 1
      wrap = |
      NO = 1
      NO {  
        imgParams = class="first" || class="middle" || class="last" || class="first" || class="middle" || class="last"
        #imgParams = border="0"
        altImgResource.import = uploads/media/
        altImgResource.import.field = media
        # 0 steht für das 1. Bild in den Seiteneigenschaften
        altImgResource.import.listNum = 3
        imgParams.titleText = TEXT
        imgParams.titleText.field = title
        ATagTitle.field = title
      }
 
      ACT = .1.NO
      ACT {
        imgParams = class="list_menu" || class="list_menu" || class="list_menu" || class="list_menu" || class="list_menu" || class="list_menu"
        #imgParams = border="0"
        altImgResource.import = uploads/media/
        altImgResource.import.field = media
        # 0 steht für das 1. Bild in den Seiteneigenschaften
        altImgResource.import.listNum = 4
        imgParams.titleText = TEXT
        imgParams.titleText.field = title
      }
 
      RO = .1.NO
      RO {
        imgParams = class="list_menu" || class="list_menu" || class="list_menu" || class="list_menu" || class="list_menu" || class="list_menu"
        #imgParams = border="0"
        altImgResource.import = uploads/media/
        altImgResource.import.field = media
        # 0 steht für das 1. Bild in den Seiteneigenschaften
        altImgResource.import.listNum = 4
        imgParams.titleText = TEXT
        imgParams.titleText.field = title
      }
    }
  }

wie kann ich nun im ts sagen das: wenn man auf deutsch(standart) geschaltet hat, soll er aus uploads/media die bilder 3 und 4 holen und wenn man auf englisch ist die bilder 5 und 6?

hoffe man versteht was ich erreichen möchte.

außerdem ist mir eben aufgefallen, dass es nicht nur bei diesem menü ist, sondern auch bei meiner hauptnavigation die aus texten besteht welche im seitentitel stehen.

gruß shatti

Profil
Verfasst am: 15. 12. 2011 [21:24]
Chrissli
Dabei seit: 19.04.2010
Beiträge: 297
Hallo Shatti,

das geht bestimmt auch anders / einfacher
aber mir würde jetzt spontan die Option einfallen,
das du im TS wie jetzt den Standardfall definierst und
dann, ebenso wie du deine sprachspezifische Config definierst,
die betreffenden Einstellungen überschreibst.
Also:
TYPOSCRIPT
10.subparts.GRAFIK = HMENU
10.subparts.GRAFIK {
   ... deine menüeinstellungen usw
}
[globalVar = GP:L = 1]
10.subparts.GRAFIK.1.NO.altImgResource.import.listNum = 4
10.subparts.GRAFIK.1.RO.altImgResource.import.listNum = 5
[global]


Den Selektor für die GP kannst du öfters im Code verwenden, der macht nichts
anderes als zu prüfen ob eine GET/POST-Variable ( HIER L ) den angegebenen Wert hat ( z.b. 1)

God's in his Heaven -
All's right with the world!
ProfilICQ
Verfasst am: 16. 12. 2011 [10:25]
Shatti
Themenersteller
Dabei seit: 01.09.2011
Beiträge: 10
Danke dir Chrissli,

ich habe es jetzt so umgesetzt:

TYPOSCRIPT
config {
  language = de
  sys_language_uid = 0
  sys_language_mode =
  sys_language_overlay = hideNonTranslated
  locale_all = de_DE
  linkVars = L(1-3)
  uniqueLinkVars = 1
}
 
10.subparts.GRAFIK = HMENU
10.subparts.GRAFIK {
   # menüeinstellungen
}
 
[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = en
config.locale_all = en_EN
10.subparts.GRAFIK.1.NO.altImgResource.import.listNum = 4
10.subparts.GRAFIK.1.RO.altImgResource.import.listNum = 5
[global]


Wenn ich mein TS so einrichte, nimmt Typo3 die Nummer 4 und 5 als Standart. Warum?


EDIT: Eigentlich hat sich das Problem gerade erledigt, weil ich herausgefunden habe, dass wenn ich die Seite auf Englisch umschalte ein weiterer Recourcenordner zur verfügung steht, in dem ich die englischen Bilder speichern kann.
Wenn dort Bilder eingefügt werden, nimmt Typo3 diese, wenn keine im Resourcenordner sind, zieht Typo3 sich die Bilder aus dem Deutschen Resourcenordner.
Trotzdem wüsste ich gerne wie man sowas im TS machen könnte, kann ich später bestimmt mal gut gebrauchen.

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 16.12.2011 um 12:08.]
Profil