Hallo,
ich habe mal ne ganz seltsame frage:
Wie bekomme ich links in dem Kategoriebaum im Backend den 2 Bäume in der Reihenfilge getauscht?
Es geht nur um die optische Anordnung der Bäume!
Es steht da:
- Servicenavigation
- Kategorie 1
- Kategorie 2
- ...
- Hauptnavigation
- Kategorie 1
- Kategorie 2
- ...
Es soll aber der Baum der Hauptnavigation oben stehen!
In der Datenbank sollte das doch änderbar sein... irgendein index?
Ich weiß, komische Frage.
Natürlich gehts auch mit verschieben und umbenennen usw...
Aber es sollte doch auch kompliziert gehen können? Wie? Wo wird die Reihenfolge ausgelesen?
Besten Dank
stefkey
Kategoriebaum, Reihenfolge in DB ändern
Moin stefkey,
Das ist nicht ganz so einfach, da es ein zusammen Spiel zwischen con_cat und con_cat_tree ist.
In con_cat wird die Reihenfolge für das Backend gespeichert.
Hier solltest du dir die Spalten "idcat", "parentid", "preid", "postid" anschauen
idcat
- sollte klar sein
parentid
- ist natürlich die ID der Kategorie in der sich diese aktuelle Kategorie befindet.
- 0 = Kategorie ist ein Baum
preid
- 0 = erster Menüpunkt in dem Level bzw Hierarchie
- ansonsten die ID der vorherigen Kategorie
postid
- 0 = letzte Menüpunkt in dem Level bzw Hierarchie
- ansonsten die ID der nachfolgenden Kategorie
Beispiel in dem eine 3te Kategorie ergänzt und an Position 2 (eins nach oben) verschoben wurde
Datenbank-Dump:
idcat parentid preid postid
1 1 0 0 3
2 1 0 3 0
3 1 0 1 2
korrekte Sortierung:
idcat parentid preid postid
1 1 0 0 3
3 1 0 1 2
2 1 0 3 0
Um die Performance des Frontend zu verbessern wird das ganze in richtiger Reihenfolge in der con_cat_tree gespeichert.
Dieses "Cachen" der Stucktur kann man einfach erneuern in dem man aus dem File "contenido/includes/functions.file.php" die Funktion strRemakeTreeTable().
Hier ist ganz simpel festgehalten:
idtree gibt die Reihenfolge an, idcat logischerweise die Kategorie und level in welcher Tiefe die Kategorie ist.
Somit ist mein Resume:
con_cat ist fürs Backend und con_cat_tree (ist Cache) für das Frontend.
Wenn du was änderst dann in der con_cat und ausführen der strRemakeTreeTable().
mfg OliverL
Das ist nicht ganz so einfach, da es ein zusammen Spiel zwischen con_cat und con_cat_tree ist.
In con_cat wird die Reihenfolge für das Backend gespeichert.
Hier solltest du dir die Spalten "idcat", "parentid", "preid", "postid" anschauen
idcat
- sollte klar sein
parentid
- ist natürlich die ID der Kategorie in der sich diese aktuelle Kategorie befindet.
- 0 = Kategorie ist ein Baum
preid
- 0 = erster Menüpunkt in dem Level bzw Hierarchie
- ansonsten die ID der vorherigen Kategorie
postid
- 0 = letzte Menüpunkt in dem Level bzw Hierarchie
- ansonsten die ID der nachfolgenden Kategorie
Beispiel in dem eine 3te Kategorie ergänzt und an Position 2 (eins nach oben) verschoben wurde
Datenbank-Dump:
idcat parentid preid postid
1 1 0 0 3
2 1 0 3 0
3 1 0 1 2
korrekte Sortierung:
idcat parentid preid postid
1 1 0 0 3
3 1 0 1 2
2 1 0 3 0
Um die Performance des Frontend zu verbessern wird das ganze in richtiger Reihenfolge in der con_cat_tree gespeichert.
Dieses "Cachen" der Stucktur kann man einfach erneuern in dem man aus dem File "contenido/includes/functions.file.php" die Funktion strRemakeTreeTable().
Hier ist ganz simpel festgehalten:
idtree gibt die Reihenfolge an, idcat logischerweise die Kategorie und level in welcher Tiefe die Kategorie ist.
Somit ist mein Resume:
con_cat ist fürs Backend und con_cat_tree (ist Cache) für das Frontend.
Wenn du was änderst dann in der con_cat und ausführen der strRemakeTreeTable().
mfg OliverL
yep! Hat geklappt!
habe in con_cat die entsprechenden 2 Einträge geändert.
Zum aktualisieren habe ich eine Kategorie im Backend hinzugefügt, dadurch wird wohl die strRemakeTreeTable() aufgerufen.
Wie kann ich die funktion strRemakeTreeTable() noch aufrufen?
In ein Modul packen?
Kannst du es kurz aufschreiben? Ich kann kein php
Besten Dank und Grüße,
stefkey
habe in con_cat die entsprechenden 2 Einträge geändert.
Zum aktualisieren habe ich eine Kategorie im Backend hinzugefügt, dadurch wird wohl die strRemakeTreeTable() aufgerufen.
Wie kann ich die funktion strRemakeTreeTable() noch aufrufen?
In ein Modul packen?
Kannst du es kurz aufschreiben? Ich kann kein php

Besten Dank und Grüße,
stefkey
Noch eine Spezialfrage:
Wenn ich einen Artikel verschiebe bekommt er eine neue idartlang.
Kann ich den Artikel auch in der DB "verschieben" sodass keine neue idartlang vergeben wird?
Wenn es blos kleine Änderungen in 1-2 Tabellen sind wäre das ja machbar. Welche Tabellen sind relevant?
Danke,
stefkey
Wenn ich einen Artikel verschiebe bekommt er eine neue idartlang.
Kann ich den Artikel auch in der DB "verschieben" sodass keine neue idartlang vergeben wird?
Wenn es blos kleine Änderungen in 1-2 Tabellen sind wäre das ja machbar. Welche Tabellen sind relevant?
Danke,
stefkey
Nummer 1:
Modul-Input:
... und tätääääää!
Nummer 2:
Ich glaube schon das es reicht in der con_ca_art zuändern.
Hab das jetzt aber nicht nachgeschaut.
Nummer 3:
Warum um Gottes willen wist du denn alles über die DB machen?
Wenn du keine PHP-Kenntnisse hast kann ich doch davon ausgehen das du kein abgedrehtes Modul bauen willst oder?
mfg OliverL
Modul-Input:
Code: Alles auswählen
cInclude( "includes", "functions.file.php");
strRemakeTreeTable();
Nummer 2:
Ich glaube schon das es reicht in der con_ca_art zuändern.
Hab das jetzt aber nicht nachgeschaut.
Nummer 3:
Warum um Gottes willen wist du denn alles über die DB machen?
Wenn du keine PHP-Kenntnisse hast kann ich doch davon ausgehen das du kein abgedrehtes Modul bauen willst oder?
mfg OliverL