Hallo,
Für den Aufbau des Pfadbaumes / Menubaumes / Seitenbaumes meines CMS Systems in der Datenbank benutze ich nested sets.
Ich habe angefangen alle meine Baumstrukturen im CMS darauf umzubauen, da diese oft angezeigt aber eher selten manipuliert werden müssen.
Nur jetzt stoße ich auf ein kleines Problem.
Mein kleines CMS bekommt per htaccess und REQUEST den Kompletten Pfad der URL in einem String übergeben.
Ich möchte nun
prüfen, ob dieser Pfad in meinem Seiten / Menusystem im CMS existiert oder ob es 404 anzeigen soll. Es geht also darum ob die Inhalte des Pfades geladen werden sollen.
Ich denke ich habe das Prinzip der nested sets wirklich gut verstanden aber ich kann nirgends ein Beispiel für mein spezielles Anliegen finden. Ich würde den Pfad per PHP zunächst mittels explode am Slash aufspalten und dann zu einer SQL Anfrage zusammensetzen.
Beispielpfad: Support/Downloads/Spiele/RPG/Gothic
Um zu
prüfen, ob mein Pfad im nested set existiert habe ich zunächst versucht ein bread crumb Beispiel zu erweitern. Jedoch ohne Erfolg.
Außerdem ist dort auch noch nicht die Bedingung enthalten, dass der jeweils höhere Level ein Kind des kleineren Levels sein sollte.
Code:
SELECT p.* , COUNT(*)-1 AS path_level
FROM core_path_parts n, core_path_parts p
WHERE n.path_ns_left BETWEEN p.path_ns_left AND p.path_ns_right
AND (p.path_string = ‘Support’ AND path_level = ‘0’)
OR (p.path_string = ‘Downloads’ AND path_level = ‘1’)
OR (p.path_string = ‘Spiele’ AND path_level = ‘2’)
OR (p.path_string = ‘RPG’ AND path_level = ‘3’)
AND (n.path_string = ‘Gothic’ AND path_level = ‘4’)
ORDER BY n.lft;
Hat jemand ein ähnliches Problem oder kennt evtl. eine Beispielabfrage dafür?