Franz Holzinger

autor  
22-01-15 21:03:34 Problem in class.tx_ttproducts_marker.php - 2.10.0
Chris
Hallo Franz,

ich hatte in Version 2.10.0 das Problem, dass die Begriffe aus dem "markerFile" (/marker/locallang.xml) nicht eingesetzt wurden.
Die TypoScript Konstante war richtig gesetzt.

Nach einigem Suchen bin ich auf folgendes Problem in ttproducts_marker.php gestoßen:



Beim Füllen des $langArray benutzt du folgenden Code für Typo 6.2:
if ( $typoVersion >= 4006000 && is_array( $value ) ) {
$value = $value[0]['target'];
}

Zumindest bei mir war 'target' aber gar nicht gesetzt, sondern nur 'source' (Sollte das anders sein?).
Ich habe den Code folgendermaßen geändert:
if ( $typoVersion >= 4006000 && is_array( $value ) ) {
if(isset($value[0]["target"])) {
$value = $value[0]["target"];
} else {
$value = $value[0]["source"];
}
}

Jetzt funktioniert es bei mir sowohl in Deutsch als auch in Englisch.


Viele Grüße,
Chris
23-01-15 07:56:42 DIV2007
Franz Holzinger
Das Einlesen der XML Dateien geschieht über die Extension div2007. Kann es sein, dass du nicht die neueste Version 1.1.5 von div2007 verwendet hast?

23-01-15 16:48:37 Benutze 1.1.5
Chris
Hi Franz,
laut EM benutze ich die 1.1.5.
Die locallang.xml ist die mitgelieferte, an der habe ich nichts geändert.

Vg.
23-01-15 17:12:42 reproduzieren
Franz Holzinger
Kannst du eine genaue Beschreibung geben, wie man diesen Fehler denn reproduzieren kann?
24-01-15 11:37:53 Wie wäre es richtig?
Chris
Hi Franz,
gute Frage, ich hab einfach tt_products 2.10.0 installiert und die anderen Extensions aus dem TER. Typo3 Version ist 6.2.9.

Wie sollte $value denn eigentlich aussehen?
Vielleicht gibst du mir kurz ein Beispiel für Deutsch und Englisch.
Dann kann ich mal schauen, wo der Fehler entsteht.

$value[0]["target"] = ??
$value[0]["source"] = ??

Vg,
Chris
24-01-15 12:09:34 reproduzieren
Franz Holzinger
Welcher Marker wird beispielsweise nicht ersetzt? Ich benötige ein Beispiel, bei welchem der angegebene Fehler auftritt.
Die target und source Inhalte sollten immer gefüllt sein. Das target auf jeden Fall. Es ist alles aus TYPO3 übernommen worden. Die Extension div2007 enthält Code, der TYPO3 um Funktionalitäten erweitert.
Kann es sein, dass du die Sprach Updates über den Extension Manager heruntergeladen hast? Das läuft nämlich nicht. Die vom Extension Manager heruntergeladenen Übersetzungen sind nämlich für tt_products 1.2.7. Ich sehe hier keine Möglichkeit, um ein aktuelleres tt_products auf den Translation Server zu laden. Deshalb liegen die Übersetzungen in der Datei addons_tt_products. Sobald aber jemand etwas über den Extension Manager herunterlädt, werden diese Übersetzungen überschrieben, und sehr viele Inhalte fehlen dann.
24-01-15 12:49:09 Alle Marker
Chris
Hi Franz,

also es wurden gar keine Marker (zB P_SIZE,P_Price) aus der locallang.xml ersetzt. Die Felder waren einfach leer. Egal in welcher View.

Ich hatte vorher die tt_products Version aus dem TER installiert, also wahrscheinlich liegt es an der falschen Sprachdatei. Ich teste mal die addons_tt_products und melde mich dann wieder.

Danke für deine Hilfe!
24-01-15 13:52:48 Liegt nicht an der Version
Chris
Hi Franz,

jetzt hab ich noch ein bisschen getestet. Es liegt nicht an einer falschen Sprachdatei.
Du benutzt in der locallang.xml index="default", wenn ich das auf index="en" ändere geht es.
Muss ich "default" irgendwo im Typo3 konfigurieren?

Ich hab versucht das Problem zu begrenzen.
In der loadLL_fh002() von div2007 gibt es folgende Abfrage:
$langObj->conf['_LOCAL_LANG.'];
if ( is_array( $confLL ) )

Bei mir ist $confLL aber kein Array (die Variable ist leer) und daher wird auch niemals der spätere Code aufgerufen, der "target" setzt:
$langObj->LOCAL_LANG[ $languageKey ][ $labelKey . $labelKey2 . $labelKey3 . $labelKey4 ][0]['target'] = $labelValue4;

In tx_products_marker.php ist dann zwar in $locallang['default'] "target" gesetzt,
nicht aber in $locallang[$LLkey].
Daher werden die Marker P_PRICE,P_SIZE etc. nicht ersetzt.

Hab ich da irgendwas im Typo3 falsch konfiguriert?

Danke nochmal für deine Hilfe.

Viele Grüße,
Chris


24-01-15 13:55:20 Fehler
Chris
Die Zeile
$langObj->conf['_LOCAL_LANG.'];
muss natürlich
$confLL = $langObj->conf['_LOCAL_LANG.'];
sein.

Vg,
Chris
24-01-15 20:54:36 Korrektur
Franz Holzinger
Offensichtlich füllt TYPO3 den target Eintrag im Falle von Englisch 'en' nicht aus. Und damit wird dein Korrektur Vorschlag auch notwendig. Ich werde nächste Woche eine neue Version zum Download bereitstellen.
24-01-15 23:30:30 Vielen Dank!
Chris
Hallo Franz,

alles klar, vielen Dank!

Vg,
Chris
< BACK TO FORUM