Seite 1 von 1
con_cat_tree problem...
Verfasst: Do 12. Aug 2004, 13:01
von emergence
ähm...
hab gerade einen neuen mandanten angelegt...
da passierte es plötzlich -> sprich als ich versucht habe bei dem mandanten eine neue kategorie anzulegen das der komplette cat_tree geleert wurde.... somit war beim ersten mandaten keine navigation mehr benutzbar -> da diese ja auch auf die cat_tree zugreift....
erst als ich beim ersten mandanten auf neuen baum anlegen geklickt habe, waren die menüpunkte wieder da...
auch nicht schlecht...
Verfasst: Do 12. Aug 2004, 13:58
von emergence
da gibts nen wirklich netten fehler drinnen...
functions.str.php
soweit ich das verstanden habe, und ganz klar ist es mir nicht wird für die erzeugung der cat_tree einträge ja
strRemakeTreeTable aufgerufen
in dieser werden auch alle einträge entfernt... (lass ich mir noch einreden)
dann wird die strRemakeTreeTableFindNext aufgerufen (lass ich mir auch noch einreden...) es wird hier ein einziger eintrag für den anderen client vorgenommen...
und jetzt kommts
dann wird für den ersten client strNextDeeper aufgerufen und da liegt das problem begraben...
Code: Alles auswählen
function strNextDeeper($tmp_idcat) {
global $cfg, $db_str, $lang;
$sql = "SELECT idcat FROM ".$cfg["tab"]["cat"]." WHERE parentid='$tmp_idcat' AND preid='0'";
$db_str->query($sql);
if ($db_str->next_record()) { //******deeper element exists
/* Check for language dependent part */
$midcat = $db_str->f("idcat");
$sql = "SELECT idcatlang FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='$tmp_idcat' AND idlang='$lang'";
$db_str->query($sql);
if ($db_str->next_record())
{
return $midcat;
} else {
return 0;
}
} else { //******deeper element does not exist
return 0;
}
}
ähm ist zwar recht nett und schön das auf die sprache rücksicht genommen wird aber der erste client hat ja seine eigenen sprachen und somit liefert die routine bei einem anderen client immer 0 zurück...
da müsste etwas rein das die erste sprache des ersten clients berücksichtigt...
Verfasst: Do 12. Aug 2004, 16:43
von emergence
okay hier der bugfix:
Code: Alles auswählen
function strNextDeeper($tmp_idcat) {
global $cfg, $db_str, $lang, $client;
$sql = "SELECT idcat,idclient FROM ".$cfg["tab"]["cat"]." WHERE parentid='$tmp_idcat' AND preid='0'";
$db_str->query($sql);
if ($db_str->next_record()) { //******deeper element exists
$midcat = $db_str->f("idcat");
$idclient = $db_str->f("idclient");
if ($client === $idclient) {
$tmp_lang = $lang;
} else {
$sql = "SELECT B.idlang FROM ".$cfg["tab"]["clients_lang"]." AS A, ".$cfg["tab"]["lang"]." AS B WHERE A.idclient='$idclient' AND A.idlang = B.idlang AND B.active='1' LIMIT 0,1";
$db_str->query($sql);
$db_str->next_record();
$tmp_lang = $db_str->f("idlang");
}
/* Check for language dependent part */
$sql = "SELECT idcatlang FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='$tmp_idcat' AND idlang='$tmp_lang'";
$db_str->query($sql);
if ($db_str->next_record())
{
return $midcat;
} else {
return 0;
}
} else { //******deeper element does not exist
return 0;
}
}
Verfasst: Di 21. Sep 2004, 20:21
von FrankHoffmann
Hallo emergence,
könnte das auch passieren, wenn nur ein Mandant vorhanden ist?
Würde der Bugfix den Baum wiederherstellen?
Verfasst: Di 21. Sep 2004, 20:51
von timo
also das phänomän ist mir ehrlich gesagt noch nie aufgefallen - sicher, daß es in der 4.5 nicht bereits behoben ist?
Verfasst: Mi 22. Sep 2004, 06:47
von emergence
ehrlich gesagt weiss ich es nicht mehr...
Verfasst: Mi 22. Sep 2004, 07:00
von FrankHoffmann
gibt es eine Funktion in Contenido, die den Baum neu aufbaut?
Verfasst: Mi 22. Sep 2004, 09:35
von emergence
nachtrag -> ist bereits im snapshot behoben... in der 4.5 ??
Verfasst: Mi 22. Sep 2004, 09:40
von emergence
FrankHoffmann hat geschrieben:gibt es eine Funktion in Contenido, die den Baum neu aufbaut?
ähm ja dies wird beim script mandanten kopieren bereits gemacht...
->
http://contenido.de/forum/viewtopic.php?p=29568#29568
Code: Alles auswählen
/* Nun muss die Baum-Struktur der Kategorien kopiert werden (steht in Tabelle con_cat_tree) */
strRemakeTreeTable(); /* Contenido Funktion in includes\functions.str.php */
Verfasst: Mi 22. Sep 2004, 10:24
von FrankHoffmann
diese Funktion wird ja angestoßen, wenn eine neue Kategorie angelegt wird. Wenn ich aber eine neue Kategorie anlege (unterhalb der ersten mit level=0) dann passiert gar nichts! Die Kategorie wird nicht angelegt - jedenfalls nicht in Contenido.
In der Datenbank (con_cat) habe ich dann festgestellt das die erste Unterkategorie dieses Zweiges eine preid eingetragen hatte, die gar nicht mehr existierte. Diese habe ich auf 0 gesetzt und der Baum war wieder da.
ErrorLog war leer.
Verfasst: Di 18. Jan 2005, 10:33
von timo
ist hier noch etwas zu tun oder kann ich den Bug schließen?
Verfasst: Di 18. Jan 2005, 10:50
von FrankHoffmann
kann geschlossen werden, der Sachverhalt ist für die Weiterentwicklung von Contenido wohl hinreichend erläutert.