con_cat_tree problem...

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

con_cat_tree problem...

Beitrag 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...
*** make your own tools (wishlist :: thx)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag 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...
*** make your own tools (wishlist :: thx)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag 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;
    }
}
*** make your own tools (wishlist :: thx)
FrankHoffmann
Beiträge: 149
Registriert: Sa 21. Jun 2003, 14:03
Kontaktdaten:

Beitrag von FrankHoffmann »

Hallo emergence,

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
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag 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?
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ehrlich gesagt weiss ich es nicht mehr...
*** make your own tools (wishlist :: thx)
FrankHoffmann
Beiträge: 149
Registriert: Sa 21. Jun 2003, 14:03
Kontaktdaten:

Beitrag von FrankHoffmann »

gibt es eine Funktion in Contenido, die den Baum neu aufbaut?
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

nachtrag -> ist bereits im snapshot behoben... in der 4.5 ??
*** make your own tools (wishlist :: thx)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag 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 */ 
*** make your own tools (wishlist :: thx)
FrankHoffmann
Beiträge: 149
Registriert: Sa 21. Jun 2003, 14:03
Kontaktdaten:

Beitrag 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.
ccccccccc
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

ist hier noch etwas zu tun oder kann ich den Bug schließen?
FrankHoffmann
Beiträge: 149
Registriert: Sa 21. Jun 2003, 14:03
Kontaktdaten:

Beitrag von FrankHoffmann »

kann geschlossen werden, der Sachverhalt ist für die Weiterentwicklung von Contenido wohl hinreichend erläutert.
Gesperrt