[TYPO3-german] Extbase 6.2.4 / Multilanguage Problem

Stefan Padberg post at bergische-webschmiede.de
Fri Sep 19 18:12:04 CEST 2014


Hallo,

ich habe das weiter untersucht und die Datenbank-Einträge verfolgt. Es 
ist irgendwie ein konzeptionelles Problem bei Typo3 oder Extbase, 
scheint mir.

1 Produkt:
product( uid:1 )

1 lokalisiertes Produkt:
product( uid:11, sys_language_uid:1, i10n_parent:1 )

2 Produktversionen:
version( uid:1, product:1, name:'product 1, version A' )
version( uid:2, product:1, name:'product 1, version B' )

2 lokalisierte Produktversionen:
version( uid:11, product:11, sys_language_uid:1, i10n_parent:1, 
name:'Produkt 1, Variante A' )
version( uid:12, product:11, sys_language_uid:1, i10n_parent:2, 
name:'Produkt 1, Varainte B' )

Insgesamt haben wir jetzt also 4 Versionsdatensätze. Wenn die 
sys_language_uid=1 ist, holt sich Extbase die 2 nicht-lokalisierten 
Versions-Uids über die nicht-lokalisierte Produkt-Uid, schaut dann nach, 
welche lokalisierten Versions-Uid zutreffen und gibt dann automatisch 
den lokalisierten Produktversionsnamen aus.

Warum funktioniert das bei den Bildern nicht?

Jede Version habe ein Bild:
sys_file_reference( uid:201, uid_foreign:1, tablenames:'version', 
sys_langauge_uid:0; i10n_parent:0 )
sys_file_reference( uid:211, uid_foreign:2, tablenames:'version', 
sys_langauge_uid:0; i10n_parent:0 )
sys_file_reference( uid:221, uid_foreign:11, tablenames:'version', 
sys_langauge_uid:1; i10n_parent:0 )
sys_file_reference( uid:231, uid_foreign:12, tablenames:'version', 
sys_langauge_uid:1; i10n_parent:0 )

Wie man sieht, ist i10n_parent bei den referenzierten Bildern nicht 
gesetzt. So hat Extbase keine Chance, das lokalisierte Bild zu finden. 
Es sucht ja mit den nicht-lokalisierten Versions-Uids die 
nicht-lokalisierten Bild-Uids und findet dann keine lokalisierten Bild-Uids.

Anders als bei den Produktversionen, die ich über den Typo3-inhärenten 
Mechanismus lokalisieren kann, geht das bei den referenzierten Bildern 
nicht. Es gibt keine lokalisierten Filereferenzen.

Man müsste mit den lokalisierten Versions-Uids die passenden 
Bildreferenzen zusammensuchen. Das müsste in Extbase irgendwie 
implementiert werden.

Für mich stellt sich jetzt die Frage:
Wie bekomme ich jetzt im Controller die lokalisierte Versions-Uid raus? 
In Fluid steht sie im Debugger:

version =>
	uid => 1
	sys_language_uid => 1
	_localizedUid => 11

Mit $version->getUid() bekomme ich immer die nicht-lokalisierte Uid.

Weiß jemand etwas hierzu?



Ich kann mir natürlich eine eigene SQL-Abfrage in das 
Versions-Repository schreiben. Dann hab ichs - eventuell.

Oder ich baue meine eigene Bildreferenz in die Extension und lege die 
über die sys_file_reference, um das sauber abzuwickeln.

Ich hoffe aber, es gibt in Extbase eine einfache Lösung für dieses 
Standardproblem, die ich Extbase-Dummy bloß noch nicht kenne.

Beste Grüße
Stefan


Am 19.09.2014 um 11:05 schrieb Stefan Padberg:
>
> Hallo,
>
> ich habe hier einen merkwürdigen Effekt:
>
> Eine eigene Extension verwaltet Produkte. Die Produkte sind mehrsprachig
> hinterlegt, funktioniert alles tippi-toppi.
>
> Manche Produkte haben Varianten. Die Varianten sind in einer eigenen
> Tabelle erfasst und mittels n:1-Relation an die Produkttabelle
> gekoppelt. Die Varianten sind auch lokalisert worden, und auch das
> funktioniert tippi-toppi...
>
>
> ...bis auf die BILDER! Die beigefügten Bilder sind zwar korrekt
> lokalisiert (eigene Datanstz-ID), aber werden nicht gezogen. Es wird
> immer der Originalbild-Datensatz gezogen, mitsamt Titel und Beschreibung
> in Originalsprache.
>
> Im Fluid-Template spreche ich die Bilder so an:
>
> {products.0.versions.0.images.0}
> (Ich spar mir jetzt die übliche for-each-Schleife; obiges bedeutet:
> 1. Bild der 1. Variante des 1.Produkts)
>
> bzw. Bild-Titelfeld
> {products.0.versions.0.images.0.originalResource.title}
>
> In der Datenbank sind in der sys_file_reference die entsprechenden
> Bilddatensätze nicht gegeneinander lokalisiert. Ist das das Problem?
> Eigentlich sollte es dort egal sein, weil die Lokalisierung ja über die
> Produktvarianten erfolgt. Eigentlich würde ich erwarten, wenn die
> lokalisierte Produktvariante gezogen wird, dass dann auch die
> lokalisierten Bilddatensätze gezogen werden. Woher weiß Extbase
> überhaupt von den Originalbilddatensätzen? Dazu müsste es ja über die
> Originalvariantendatensätze gehen. Es werden aber korrekt die
> lokalisierten Varianten gerendert.
>
> Ist das ein Bug?
>
> Beste Grüße
> Stefan
>
>
>
>
>
>


-- 
Bergische Webschmiede
Typo3 Dienstleistungen
:: Dipl.-Ing. Stefan Padberg
:: www.bergische-webschmiede.de

---
Diese E-Mail ist frei von Viren und Malware, denn der avast! Antivirus Schutz ist aktiv.
http://www.avast.com



More information about the TYPO3-german mailing list