Ich habe kein passendes Forum gefunden, deswegen stelle ich meine Frage einfach mal hier, wenn nötig bitte verschieben.
Ich habe meine Template Datei (index.php), in der ich unter anderem Grafiken einbinde. Da meine Seite Mehrsprachig ist möchte ich z.b. für die englische und russische Version der Seite eine andere Grafik einbinden als auf der deutschen.
Ich habe eine Joomla Seite bei der ich genau das gleiche Problem hatte und das habe ich mit einem einfachen PHP Skript gelöst:
<?
if($_GET['lang']==en) {
echo "Search & find ...";
} elseif($_GET['lang']==fr) {
echo "Chercher & Trouver";
} else {
echo "Suchen & finden ...";
}
?>
Wenn ich das mit meiner TYPO3 Seite versuche passiert allerdings nichts, der PHP Code wird anscheinend überhaupt nicht ausgeführt.
Ist es nicht möglich mit TYPO3 PHP Bereiche in meiner index.php zu erstellen und dort PHP Skripts auszuführen?
Oder gibt es noch andere Möglichkeiten die Bilder entsprechend für die Sprache auszuwählen? Inhaltselemente kommen nicht in Frage, da ich schon sehr viele auf meiner Seite habe und diese Methode generell viel zu aufwändig wäre, es geht wie gesagt um einfache Grafiken und um einfache Texte wie z.b. der Text im Suchfeld des Suchformulars.
Danke schonmal!
Hallo,
das lässt sich am besten mit Typoscript und einem Marker lösen.
Man kann if/else Abfragen auch über Typoscript conditions machen siehe hier:
https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Conditions/Index.html
get-parameter lassen sich z.B. so abfragen:
[globalVar = GP:lang=en]
...hier den marker füllen für Sprache englisch
[global]
[globalVar = GP:lang=fr]
...französich
[global]
# usw.
PHP-Code direkt in die Template-Datei schreiben geht nicht, weil TYPO3 den Inhalt ausliest und die Marker einsetzt (sofern Du keine extra Template-Engine benutzt).
Gruß,
Vince
Danke schon mal für die Antwort, ich blicke in der Doku von dir allerdings nicht ganz durch, gibt es ein einfaches Beispiel wie man z.b. verschiedene Bilder mit if Abfragen realisiert?
Und was meinst du genau mit Markern? Ich kenne Marker eigentlich nur von Inhaltselementen, wie sieht so ein Typoscript Marker aus?
Hier wird gezeigt, wie man per typoscript Bilder einbindet:
http://wiki.typo3.org/De:TSref/IMAGE
Mit Markern meine ich folgendes:
nehmen wir an, Du hast den Marker ###MARKER### in deinem Template.
Den kannst Du ja dann mit irgendetwas füllen, z.B. mit einem Content-Element
MARKER = CONTENT
...usw..
Es gibt auch den Typ IMAGE, damit lassen sich Bilder einbinden, z.B.
MARKER = IMAGE
MARKER.file = pfad/zum/bild.jpg
MARKER.wrap = <div class="css-klasse">|</div>
Dann könntest Du je nach Sprache (über conditions) das Bild anpassen (jeweils MARKER.file ändern)
Ich hoffe, so war es verständlicher.
Gruß,
Vince
Danke damit hast du mir schon mal sehr weiter geholfen, das Bild mit dem Marker einzubinden hat auch geklappt, nur die Language Condition will noch nicht so ganz.
Hier mal die Condition und die configs:
config.linkVars = L
config.htmlTag_LangKey = de_DE
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
config.defaultLanguageISOCode = DE
config.sys_language_mode = content_fallback
config.sys_language_overlay = hideNonTranslated
[globalVar = GP:L = 1]
config.linkVars = L
config.sys_language_uid = 1
config.language = en
config.locale_all = en_GB
config.htmlTag_langKey = en_GB
[global]
[globalVar = GP:L = 2]
config.linkVars = L
config.sys_language_uid = 2
config.language = ru
config.locale_all = ru
config.htmlTag_langKey = ru
[global]
config {
// Global language definitions
language = de
locale_all = de_DE.utf8
htmlTag_langKey = de-DE
metaCharset = utf-8
#DOCType setzen auf XHTML trans
doctype = xhtml_trans
#erzeugten XHTML code bereinigen
xhmtl_cleaning = all
#internet explorer - quirks mode
[browser = msie]
config.doctypeSwitch = 1
[GLOBAL]
} // end config
[globalVar = GP:L = 0]
MARKER = IMAGE
MARKER.file = fileadmin/images/de.jpg
MARKER.wrap = <div class="css-klasse">|</div>
[global]
[globalVar = GP:L = 1]
MARKER = IMAGE
MARKER.file = fileadmin/images/en.jpg
MARKER.wrap = <div class="css-klasse">|</div>
[global]
[globalVar = GP:L = 2]
MARKER = IMAGE
MARKER.file = fileadmin/images/ru.jpg
MARKER.wrap = <div class="css-klasse">|</div>
[global]
Es ist egal ob ich [globalVar = GP:L = 0] oder [globalVar = GP:lang=de] benutze, es funktioniert beides nicht.
hallo,
also
[globalVar = GP:L=0]
[global]
sollte eigentlich funktionieren.
Eins ist mir in deinem config-Teil aufgefallen: da steht drinn [browser=msie] usw... Conditions dürfen nicht innerhalb von geschweiften Klammern stehen.
Um "Syntax-Fehler" im Typoscript zu finden, kann es helfen in den Typoscript-Object-Browser zu schauen.