Hallo andreas.schempp
Ich möchte kurz darauf hinweisen, dass das Problem, welches im Modul: changelanguage aufgetreten ist auch im Modul: autolink auftritt. Ich wäre froh, wenn du dort das Problem auch beheben könntest. Danke!
Druckbare Version
Hallo andreas.schempp
Ich möchte kurz darauf hinweisen, dass das Problem, welches im Modul: changelanguage aufgetreten ist auch im Modul: autolink auftritt. Ich wäre froh, wenn du dort das Problem auch beheben könntest. Danke!
Das Problem, die Fallback-Seiten nicht speichern zu können, hatte ich auch. Bei mir lag es daran, daß die IDs der Fallback-Seiten in aufsteigender Reihenfolge (und ohne Lücke) in der Datenbank lagen.
Für PHP sind die Array-Schlüssel "0", "1", "2" genau dasselbe wie 0, 1, 2. Wenn also die Indices in einer Reihe ab 0 liegen, kann Typolight nicht erkennen, daß es eigentlich ein assoziatives Array sein sollte. Es wird ein numerisches Array erkannt und dadurch wird das Select-Feld falsch aufgebaut.
Ein (Not-)Lösung für das Problem wäre, eine der Fallback-Seiten zu löschen und neu anzulegen um die IDs nicht mehr in durchgehender Reihenfolge zu haben.
Das von mdash beschriebene Problem mit den PHP-Arrays scheint die Lösung zu sein. Ich habe einfach eine beliebige Seite der Fallback-Sprache dupliziert und das Original dann gelöscht. Seit dem funktioniert es. :D
Wäre schön wenn dieser Umweg in der nächsten Version von changelanguage behoben werden kann. Ansonsten eine tolle Erweiterung die eigentlich in den Core gehört. ;)
Das sehe ich auch so. Eine must-have Erweiterung für multilinguale Sites.
Allerdings nimmt Leo längst nicht alles in den Core was dort wünschenswert wäre, einerseits damit der Original-Entwickler sein Baby weiter betreuen kann, und anderseits damit die entsprechende Arbeit fortan nicht auch noch auf Leo's Schultern aufgeladen wird. (Bitte keine Grundsatzdiskussion wieso das Entwicklungsmodell so ist - das wurde in anderen Themen bereits mehrfach totgeschlagen)
Ich verstehe leider deine Lösung noch nicht ganz. Meinst du das
Sollte so gemacht werden, damit es als String genommen wird? Könnte das mal jemand testen?PHP-Code:
$this->arrPages[0] = $GLOBALS['TL_LANG']['tl_page']['no_subpage'];
PHP-Code:
$this->arrPages['0'] = $GLOBALS['TL_LANG']['tl_page']['no_subpage'];
Ich denke er meint eher in createPageList:
Statt:
Eventuell so:PHP-Code:
$this->arrPages[$fallbackID] = $fallbackTitle;
Habe das aber nicht getestet.PHP-Code:
$this->arrPages["$fallbackID"] = $fallbackTitle;
Das Problem liegt daran, daß die leere Option bei der Wahl der Fallback-Seite ("keine Seite") den Index "0" bekommt in der Extension. Dadurch kann es passieren, daß das Array, das an das Select-Widget übergeben wird mit 0 beginnt und die Schlüssel durchgehend sind. (Wenn die Fallback-Seiten in der Datenbank die IDs "1", "2", "3"... haben). Um den Bug nachzuvollziehen müssen die Fallback-Seiten also durchgehende IDs ab 1 haben.
Genau dann wird das Array als numerisch angenommen (und nicht mehr als assoziativ). (siehe TL/system/functions/array_is_assoc()) - und das führt zu falschen Values in dem Select-Feld.
Ich denke, eine gute Lösung wäre es, in der dca/tl_page.php bei ...['fields']['languageMain']['eval'] die 2 Werte "includeBlankOption" und "blankOptionLabel" zu verwenden. Momentan wird das ja so gemacht (dca/tl_page.php Zeile 86):
Es würde aber auch reichen da einen anderen Index zu nehmen (Hauptsache nicht '0' oder 0).PHP-Code:
$this->arrPages[0] = $GLOBALS['TL_LANG']['tl_page']['no_subpage'];
Entschuldigt, ich hätte Eure Texte besser lesen sollen. :)
Ich meinte das, was Andreas geschrieben hatte:
Da aber PHP (laut var_dump) den Key '0' als int (0) ansieht hilft genau dieser String nicht.PHP-Code:
$this->arrPages['0'] = $GLOBALS['TL_LANG']['tl_page']['no_subpage'];
(Das 'includeBlankOption' bei den 'eval'-Werten verwendet da einen Leerstring).
PHP-Code:
$this->arrPages[''] = $GLOBALS['TL_LANG']['tl_page']['no_subpage'];
Alles klar. Ich habe im neusten Build der 0.7.2 den Schlüssel auf einen Leeren String geändert, könnte das mal jemand testen?
Hallo Andreas,
hatte den Gastzugang schon wieder gelöscht, da das Problem ja gefunden schien.
Habe nun den neusten Build (12) ausprobiert und tatsächlich, es funktioniert! :D
Vielen Dank!!