bug bei mehrsprachigkeit con_code

Gesperrt
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

bug bei mehrsprachigkeit con_code

Beitrag von emergence »

hab mir gerade was nettes angesehen und bin da auf ein problem gestossen...

beispiel zum testen:

2 sprachen -> 1=deutsch, 2=englisch

ich hab ein modul das jeweils in einem template vorkommt und in beiden sprachen verwendet wird.

ich ändere das modul in deutsch oder englisch (ist in dem fall egal)
dann wird im feld createcode der wert auf 1 gesetzt...

bis hier her ist ja noch alles in ordnung...
nun kommt aber der clou...

ich sehe mir die seite im frontend auf deutsch an.
hier wird die änderung übernommen...
mit einem wechsel auf die zweite sprache wird die änderung nicht übernommen...

das intressante ist nun der wert für create code wird auf 0 gesetzt sobald die con_code in der einen sprache upgedatet wurde...
in der anderen sprache bleibt der alte modul code aktiv...

hauptproblem dürfte nun sein das dass feld createcode nicht sprachabhängig ist... dieses feld sollte am ehesten in die con_art_lang wandern... in der con_cat_art bringts leider nicht viel...

wie das ganze mit kategorien und layouts momentan aussieht kann ich momentan leider nicht abschätzen...

leider wird das etwas umbauarbeit im system benötigen...
oder anders gesagt der fehler tut wirklich weh...
*** make your own tools (wishlist :: thx)
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

danke, das problem haben wir auch immer wieder - wir löschen öfters die con_code

ich seh mir das mal am montag an und bespreche das ganze mal

eventuell könnte create_code auch ganz rausfliegen, und die entsprechenden con_code-artikel könnten schon gleich gelöscht werden...dann werden sie ja auf jeden fall neu generiert
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

das wäre eventuell die beste lösung...
wenn eine änderung statt findet den eintrag in der con_code komplett löschen...
ob dann noch createcode überhaupt benötigt wird ist dann noch fraglich...

ich werd mich selbst noch ein wenig damit spielen...
*** make your own tools (wishlist :: thx)
SkyBlader
Beiträge: 303
Registriert: Do 18. Mär 2004, 16:23
Wohnort: Ratingen / NRW
Kontaktdaten:

Beitrag von SkyBlader »

mhh, wenn ihr bei jeder moduländerung die con_code leert, um ein neuerstellen zu erwzingen, seh ich nur irgendwann acuh ein problem wenn mal sehr viele templates/artikel/module/sprachen vorhanden sind ...

oder meint ihr nicht ?

stefan
Contenido 4.4.4/4.4.5 - Contenido 4.5.x

Module:sn_multinav für 4.5.x
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

es soll nicht die komplette con_code geleert werden sondern nur der entsprechende eintrag.
erzeugt werden muss der code der seite ja sowieso noch...
momentan wird zuerst das flag createcode gesetzt und erst dann in der front_content findet die erzeugung des codes statt...
wenn das flag nicht gesetzt ist und kein eintrag in der con_code vorhanden ist wird dieser sowieso erzeugt...
besonders bei vielen seiten ist es hilfreich nicht nachkontrollieren zu müssen ob die änderung auf allen seiten durchgeführt wurde.

momentan muss man das machen in dem man die con_code komplett leert... (das ist der momentane workaround für das problem)
*** make your own tools (wishlist :: thx)
SkyBlader
Beiträge: 303
Registriert: Do 18. Mär 2004, 16:23
Wohnort: Ratingen / NRW
Kontaktdaten:

Beitrag von SkyBlader »

ah, ok ..

dann komm ich da mit, danke emerg ;)
Contenido 4.4.4/4.4.5 - Contenido 4.5.x

Module:sn_multinav für 4.5.x
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ähm hab mir das jetzt ne zeitlang überlegt und bin auf nen relativ simplen fix für das problem gekommen...

die änderung betrifft nur die front_content.php

da gibt ja

Code: Alles auswählen

	/* Check if code is expired, create new code if needed */
	if ( $db->f("createcode") == 0 && $force == 0) {
...
	} else {

...

		conGenerateCode($idcat, $idart, $lang, $client);
...
	}
ähm der fix macht nichts anderes wie falls force=1 oder createcode=1
vorher die einträge aus der con_code zu entfernen

Code: Alles auswählen

	/* Check if code is expired, create new code if needed */
	if ( $db->f("createcode") == 0 && $force == 0) {
...
	} else {

...
		$sql = "DELETE FROM ".$cfg["tab"]["code"]." WHERE idcatart = '".$idcatart."'";
		$db->query($sql);

		conGenerateCode($idcat, $idart, $lang, $client);
...
	}
müsste an sich alle probleme beheben... oder hab ich was übersehen... ?
*** make your own tools (wishlist :: thx)
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

ja, aber dann wird der artikel doch immer neu generiert oder?
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

nein eben nicht... sollte createcode auf 1 stehen wird der code einmal neu generiert, nach dem erstmaligen erzeugen des artikels wird das feld createcode wieder auf 0 gesetzt...

vorher werden aber alle einträge aus der con_code entfernt.

wechselt man nun in die andere sprache ist das feld createcode zwar noch immer 0 aber der eintrag in der con_code existiert nicht und wird erzeugt...

bei einem force=1 ist es egal, da die seite sowieso neu erzeugt wird.

denk ich mir zumindestens...
*** make your own tools (wishlist :: thx)
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

ah okay, verstanden

war vorhin noch etwas früh am morgen ;)
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

so den Bugfix habe ich endlich auch eingebaut.
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

gecheckt sieht gut aus...

geschlossen...
*** make your own tools (wishlist :: thx)
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

Irgendwie hat das alles nicht richtig funktioniert.

In der Funktion conSetCodeFlag habe ich noch ein Delete-Statement für die übergebene idcatart eingebaut.
Gesperrt