Seite 1 von 1

Bug?: nur für einen Mandanten wird die cat_tree erstellt

Verfasst: Fr 3. Okt 2008, 13:08
von OliverL
Moin moin,

hab eine alte 4.6.23 auf 4.8.8 upgedatet.
Die Version hat
- 3 Mandanten
- je 2 Sprachen

erstelle ich eine neue Kategorie werden die Einträge in der con_cat_tree vollständig neu geschrieben.

Dabei wird bei mir aber nur für einen Mandanten die vollständige Struktur geschrieben.

Ich habe mich durch div. Funktionen gefummelt und bemert das:
Erst werden alle Einträge gelöscht ,
dann die Hauptpunkte ergänzt und
für die Submenüpunkte die Funktion strNextDeeperAll() in include/function.str.php aufgerufen.

in dieser Funktion werden die Submenü-Punkte nur für eine Sprache ermittelt:

Code: Alles auswählen

/* Check for language dependent part */
$sql = "SELECT idcatlang FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='".Contenido_Security::toInteger($midcat)."' AND idlang='".Contenido_Security::toInteger($lang)."'";
Meine Lösung für das Problem wäre:

Code: Alles auswählen

/* Check for language dependent part */
$sql = "SELECT idcatlang FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='".Contenido_Security::toInteger($midcat)."'";
Also einfach $lang zu entfernen.

Kann das jemand bestätigen?

mfg OliverL

Verfasst: Mo 6. Okt 2008, 08:59
von emergence
also wenn da steht "Check for language dependent part" würde ich dem gefühl nach sagen du liegst falsch...

da gibts auch ein $ignore_lang == true das nie funktionieren wird...

timo muss was dazu sagen...

Verfasst: Mo 6. Okt 2008, 10:59
von OliverL
THX emergence. Du hast wie immer recht. Das habe ich beim durchwühlen der Funktionen am ende übersehen.

Prinzipiell müsste sich die $ignore_lang ganz durch alle Funktionen für die Erstellung der cat_tree-Tabelle ziehen.

-> Wobei ich es bevorzugen würde wenn das neu erstellen der cat_tree sich nur auf einen Mandanten beschränken würde. Wäre dann sicher eine Performance Verbesserung für den Content-Kategorie Bereich.

Was bedeutet das, schon bei der Funktion strRemakeTreeTable() darauf eingegangen werden muss. Werde mir die komplette Datei heute Abend noch mal anschauen und dann einen Vorschlag machen.

mfg OliverL

PS.: die erste Variante ist dann doch einbisschen zu "quick&dirty".

Verfasst: Mo 6. Okt 2008, 11:01
von OliverL
Ähhhh...

Kannst du das Problem den Reproduzieren?
Ich hatte schon häufiger das Problem, das das Problem keins ist.

mfg OliverL

Verfasst: Mo 6. Okt 2008, 11:53
von emergence
OliverL hat geschrieben:Kannst du das Problem den Reproduzieren?
natürlich nicht...
habe derzeit keine testumgebung mit 3 mandanten mit jeweils 2 sprachen...

Verfasst: So 26. Okt 2008, 14:30
von OliverL
Bei Leeren der con_cat_tree werden jetzt nur noch die einträge eines Client entfernt so das später nur noch für einen Client ergänzt werden muss.

At revision: 864

Verfasst: So 26. Okt 2008, 15:42
von emergence
ähm... das wird so nicht gehen... da fehlt ein sql query...