con_cat_tree problem...
con_cat_tree problem...
ä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...
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...
*** make your own tools (wishlist :: thx)
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...
ä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...
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;
}
}
da müsste etwas rein das die erste sprache des ersten clients berücksichtigt...
*** make your own tools (wishlist :: thx)
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;
}
}
*** make your own tools (wishlist :: thx)
-
- Beiträge: 149
- Registriert: Sa 21. Jun 2003, 14:03
- Kontaktdaten:
Hallo emergence,
könnte das auch passieren, wenn nur ein Mandant vorhanden ist?
Würde der Bugfix den Baum wiederherstellen?
könnte das auch passieren, wenn nur ein Mandant vorhanden ist?
Würde der Bugfix den Baum wiederherstellen?
Zuletzt geändert von FrankHoffmann am Mi 22. Sep 2004, 06:58, insgesamt 1-mal geändert.
ccccccccc
-
- Beiträge: 149
- Registriert: Sa 21. Jun 2003, 14:03
- Kontaktdaten:
nachtrag -> ist bereits im snapshot behoben... in der 4.5 ??
*** make your own tools (wishlist :: thx)
ähm ja dies wird beim script mandanten kopieren bereits gemacht...FrankHoffmann hat geschrieben:gibt es eine Funktion in Contenido, die den Baum neu aufbaut?
-> 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 */
*** make your own tools (wishlist :: thx)
-
- Beiträge: 149
- Registriert: Sa 21. Jun 2003, 14:03
- Kontaktdaten:
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.
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.
ccccccccc
-
- Beiträge: 149
- Registriert: Sa 21. Jun 2003, 14:03
- Kontaktdaten: