Seite 1 von 1

Fehler bei Sprachsyncronisation in 4.9.4 und 4.9.5

Verfasst: Di 16. Dez 2014, 18:24
von walter999
Wir haben hier einen Fehler in der 4.9.4 und in der 4.9.5 festgestellt.

Der Fehler taucht bei folgender Konstellation auf und führt zum Löschen des Artikels in der falschen Sprache - also relativ heikel das ganze!!!
Wenn man z.B. Sprache DE und EN hat und in den Bereich EN wechselt, dann syncronisiert und auch einen Artikel syncronisiert. Dann oben rechts auf DE schaltet und wieder zurück nach EN schaltet wird im Frame der Artikelübersicht der DE-Teil geladen. Wenn man dies nicht bemerkt, weil z.B. die Artikel in DE und EN ncoh gleich beschriftet sind dann löscht man u.U. den Artikel im Bereich DE obwohl man dies im Bereich EN tun wollte.

Der Fehler tritt wohl nicht auf wenn man zwischenzeitlich mal auf eine Kategorie klickt oder sich aus- und wieder einloggt.

Wir haben lange getestet bis wir eine Logik hinter dem Fehler gefunden haben. Um die Behebung haben wir uns noch nicht gekümmert weil der Fehler erst heute aufgefallen ist!

Viele Grüße
Walter

Re: Fehler bei Sprachsyncronisation in 4.9.4 und 4.9.5

Verfasst: So 21. Dez 2014, 07:14
von walter999
Hier schon mal die Fehlerhafte Stelle in der Datei /contenido/scripts/header.js:

Code: Alles auswählen

changeContenidoLanguage: function(idlang) {

	var frame;

	frame = Con.getFrame('left_top');
	if (frame) {
			frame.location.href = Con.UtilUrl.replaceParams(frame.location.href, {changelang: idlang});
	}

	frame = Con.getFrame('left_bottom');
	if (frame) {
			frame.location.href = Con.UtilUrl.replaceParams(frame.location.href, {changelang: idlang});
	}

	frame = Con.getFrame('right_top');
	if (frame) {
			// remove the action parameter, so that actions are not executed in the other language
			var href = Con.UtilUrl.replaceParams(frame.location.href, {action: null, changelang: idlang});
			frame.location.href = href;
	}

	frame = Con.getFrame('right_bottom');
	if (frame) {
			// remove the action parameter, so that actions are not executed in the other language
			var href = Con.UtilUrl.replaceParams(frame.location.href, {action: null, changelang: idlang, frame: 4});
			frame.location.href = href;
	}

	frame = Con.getFrame('header');
	if (frame) {
			frame.location.href = Con.UtilUrl.replaceParams(frame.location.href, {changelang: idlang});
	}


},
Explizit gibt es Probleme u.a. an dieser Stelle:

Code: Alles auswählen

	frame = Con.getFrame('right_bottom');
	if (frame) {
			// remove the action parameter, so that actions are not executed in the other language
			var href = Con.UtilUrl.replaceParams(frame.location.href, {action: null, changelang: idlang, frame: 4});
			frame.location.href = href;
	}
Mir scheint es wie ein "Laufzeitproblem" denn wenn ich einen alert davor ausgebe dann tritt der Fehler nicht in der Form auf. Ansonsten kann ich den Fehler relativ schnell erzeugen wenn ich zwei, drei mal zwischen den Sprachen hin und her schalte. Irgendwann wird der Frame unter Content->Artikel auf der rechten Seite nicht mit ausgetauscht und die Sprachumschaltung ist somit fehlerhaft.

Schnelle Abhilfe ist übrigens die alte Logik wieder zu integrieren, dann sieht die Funktion so aus:

Code: Alles auswählen

changeContenidoLanguage: function(idlang) {

		// EDIT LW, WL - neu:
		// (immer auf Hauptseite leiten in neuer Sprache)
		var url = "index.php?contenido="+Con.sid+"&changelang="+idlang;
		parent.frames.top.location.href = url;

},
Viele Grüße
Walter

Re: Fehler bei Sprachsyncronisation in 4.9.4 und 4.9.5

Verfasst: Do 8. Jan 2015, 09:16
von frederic.schneider_4fb
Lieber Walter, ich habe Dein Problem an einen Kollegen weitergegeben. Der schaut sich das die Tage an und meldet sich dann an dieser Stelle!

Re: Fehler bei Sprachsyncronisation in 4.9.4 und 4.9.5

Verfasst: So 13. Sep 2015, 06:24
von walter999
Ich schubs das Thema mal nach oben. Wollte mal nachfragen ob Ihr Euch das evtl. ansehen konntet und das Problem nachvollziehen konntet.

Viele Grüße
Walter