Zum Inhalt springen

Reihenfolge von Code relevant?

Erstellt am 10. Oktober 2009 · 3 Antworten · letzte Antwort am 10. Oktober 2009

Tags: Frage

pat13 ·

Um einen ersten Einblick in Typo3 zu bekommen, habe ich das Tutorial, das auf der typo3.net Homepage verlinkt ist, durchgearbeitet (http://www.mittwald.de/fileadmin/pdf/dokumentation.pdf).

Hatte eigentlich keine Probleme, den Inhalt zu verstehen, funktionierte auch alles wie beschrieben. Ausser:

In Kapitel 7.2, ab Seite 176, wird beschrieben, wie man mehrsprachige Webseiten machen kann. Ich wähle Deutsch als default, Englisch als zweite Sprache (id=1). Dazu soll folgender Code im Template am Schluss eingefügt werden:

[globalVar = GP:L = 1]
	config.sys_language_uid = 1
	config.language = en
	config.localeAll = gb_UK
	page.10.marks.FOOTER.value = Deutsch
	page.10.marks.FOOTER.typolink.additionalParams = &L=0
[global]

Jetzt das Problem: Es funktioniert nicht, d.h. die Seite wird nur in Englisch angezeigt.
Ja, ich habe die Language erstellt, und ja, ich habe content in beiden Sprachen eingefügt.

Wenn ich den Block aber an den Anfang des Templates stelle (nach den config Definitionen, dann funktioniert es. Heisst, wenn der L-Parameter in der URL nicht vorhanden oder 0 (default) ist, dann wird nett der deutsche Content angezeigt. Wenn L=1 ist, dann erscheint nur der englische Teil. Wie gewünscht.

Frage: Kommt es wirklich darauf an, wo man die Condition einstellt? Dann würde das Tutorial eher falsch liegen. Oder habe ich sonst einen Denkfehler (oder copy-paste-Fehler) gemacht?

Bin froh um Klärung.
Danke, Pat

Hier noch der funktionierende TS-Code meines Templates:
(Ein kleines Problem mit der Parameter-Übergabe hab ich noch. Habe dafür aber einen anderen Thread gestartet)

config.linkVars = L
config.uniqueLinkVars = 1
config.sys_language_uid = 0
config.language = de
config.localeAll = de_DE

[globalVar = GP:L = 1]
	config.sys_language_uid = 1
	config.language = en
	config.localeAll = gb_UK
	page.10.marks.FOOTER.value = Deutsch
	page.10.marks.FOOTER.typolink.additionalParams = &L=0
[global]

page = PAGE
page {
	typeNum = 0
	stylesheet = fileadmin/style.css
	meta.AUTHOR = Ich

	10 = TEMPLATE
	10.template = FILE
	10.template.file = fileadmin/vorlage.html
	10.workOnSubpart = DOKUMENT
	
	10.marks {
	
		FOOTER = TEXT
		FOOTER {
			value < config.sys_language_uid
			typolink.parameter.data = page:uid
			typolink.additionalParams = &L=1
		}

		RECHTS = CONTENT
		RECHTS {
			table = tt_content
			select.orderBy = sorting
			select.where = colPos = 2
			select.languageField = sys_language_uid
		}

		MITTE_CONTENT = CONTENT
		MITTE_CONTENT {
			table = tt_content
			select.orderBy = sorting
			select.where = colPos = 0
			select.languageField = sys_language_uid
		}
		
		TRAILER = IMAGE
		TRAILER.file = GIFBUILDER
		TRAILER.file {
			XY = 797, 110
			backColor = #B0C0D0
			10 = TEXT
			10.text.field = subtitle // title
			10.fontSize = 50
			10.fontFile = fileadmin/fonts/verdana.ttf
			10.fontColor = #C8D3DE
			10.niceText = 1
			10.offset = 10,95
			
			20 = TEXT
			20.text.field = subtitle // title
			20.fontSize = 25
			20.fontFile = fileadmin/fonts/verdana.ttf
			20.fontColor = #FFFFFF
			20.niceText = 1
			20.offset = 50,95
		}

		MENU_OBEN = HMENU
		MENU_OBEN.special = directory
		MENU_OBEN.special.value = 10
		MENU_OBEN.1 = TMENU
		MENU_OBEN.1.NO = 1
		MENU_OBEN.1.NO.ATagParams = class="linkWeiss"
		MENU_OBEN.1.NO.linkWrap =  | | |*|  | | |*|  |
		
		MENU_LINKS = HMENU
		MENU_LINKS {
			special = directory
			special.value = 9
			1 = GMENU
			1.NO = 1
			1.NO {
				wrap = |<br />
				XY = 180,25
				backColor = #335C85
				
				10 = TEXT
				10.text.field = title
				10.fontColor = #FFFFFF
				10.fontFile = fileadmin/fonts/verdana.ttf
				10.fontSize = 10
				10.niceText = 1
				10.offset = 40,17
				
				20 = IMAGE
				20.file = GIFBUILDER
				20.file {
					XY = 180,1
					backColor = #FFFFFF
				}
				20.offset = 0,24
			}
			1.RO < .1.NO
			1.RO {
				tmp < .backColor
				backColor = #B0C0D0
				5 < .10
				5.fontColor < .tmp
				5.offset = 42,19
			}
			1.CUR < .1.RO
			2 < .1
			2 {
				NO.backColor = #B0C0D0
				NO.10.fontColor = @335C85
				NO.20.file.backColor = #335C85
				RO < .NO
				RO.backColor = #FFFFFF
				RO.5 >
				CUR < .RO
		}
	}
}
Unbekannter Benutzer ·

Wie im anderen Thread geschrieben, kommt es schon auf die Reihenfolge an, wenn es unten nicht funktioniert hat, tippe ich mal darauf, dass es einen Klammerfehler gibt. Conditions funktionieren nur außerhalb von Klammern, d.h. wenn da irgendwo eine Klammer nicht geschlossen war, würde es das erklären.

pat13 ·

Vielen Dank für deine prompte Antwort.

Wie du richtig vermutet hast, liegt ein Klammerfehler vor. Darum hatte die Condition unten nicht funktioniert. Oben schon, aber resultierend mit dem im anderen Thread erwähnten Problem. Mit Einfügen der Klammer am richtigen Ort funktioniert wirklich alles wunderbar, wie im Tutorial beschrieben.

Naja, wer sich im täglichen Leben nur auf seine IDEs (Eclipse) verlässt, hats dann eben umso schwerer, wenn er im Texteditor programmiert ;o) Werd in Zukunft speziell auf Klammern achten.