Erweiterter Ansatz für den Seitenaufbau
Da ich bei meinem derzeitigen Ansatz an die Grenzen stoße - oder
zumindest deren Schwachstellen erkenne -, habe ich mir gedacht, ich
muss einen neuen Ansatz entwickeln, oder den alten zumindest erweitern.
Aber bevor ich es zum Besten gebe, werde ich nochmal den alten Ansatz
erläutern.
Allerdings werde ich zuerst noch die Problemstellung beschreiben.
Bei der Seitenstruktur geht es um das Erstellen einer beliebig tiefen
Hierarchie - im technischen Sinne ein Baum oder ein Wald - die die
Struktur der Seite angibt. Wie diese Struktur auf meiner Seite
aussieht, ist auf der Sitemap
ersichtlich. Man kann dabei gut sehen, welche Struktur die Seite hat.
Diese Seitenstruktur ist zum Einen notwendig, um die so genannte
Sitemap zu kreieren und zum Anderen kann man seine Seite dadurch klarer
strukturieren. Auch für das "Sie sind hier:" wird die Struktur der
Seite genutzt. Der Komfort wird dadurch signifikant erhöht, was bei
größeren Internetpräsenzen durchaus notwendig ist.
Eine Erklärung meines derzeitigen Ansatzes nach dem Prinzip KKP (Kurz,
Knapp, Präzise): Es gibt Knoten, die einen Link und andere
Metainformationen enthalten. Jene können Eltern- und/oder Kindknoten
haben. Dadurch strukturiert man einen Baum oder Wald. Es entsteht eine
flexible Seitenstruktur.
Das derzeitige Problem tritt z.B. bei diesem Blog auf. Wenn man auf
einen Blogeintrag klickt, dann kriegt man im "Sie sind hier:" den Titel
"Blogeintrag" angezeigt statt des korrekten Namens. Abhilfe könnte man
schaffen, indem man jeden neuen Blogeintrag in die Navigationstabelle
schreibt. Klingt gut, hat aber auch seine Schattenseiten. Bei einer
großen Webseite werden die Tabellen mit jedem noch so kleinen Eintrag
befüllt. Die Geschwindigkeit der ganzen Seite würde darunter leiden, da
bei jedem Aufruf die Seitenstruktur genutzt wird. Natürlich könnte man
es optimieren, sodass auch in jenen Fällen performant ist, aber das
widerspricht meinem Verlangen nach simplen und dafür effektiven
Lösungen.
Man kann die o.g. Idee weiterverwenden, man muss also nicht alles
komplett umgestalten. Das Prinzip ist einfach zu verstehen: Ich füge
eine Klasse hinzu, die den derzeitigen Pfad (Weg von der Wurzel zum
derzeitigen Knoten) enthält. Eine neue Funktionalität lässt mich neue,
temporäre Knoten zu dem Pfad hinzufügen. Sodass statt "Blog -
Blogeintrag" z.B. "Blog - Erweiterter Ansatz für den Seitenaufbau"
steht. Meiner Meinung nach viel sinnvoller als vorher. Eine weitere
Stärke ist, dass man den Link von "Blog" so modifzieren kann, sodass
man auf die Seite zurückkommt, von der man gekommen ist. Wenn z.B. der
Eintrag "Foobar" auf Seite 42 steht, so würde "Blog" auf Seite 42 des
Blogs zeigen. Das nenne ich Flexibilität. Also müsste es sicherlich
auch die Möglichkeit geben, bereits existente Knoten zu entfernen und
sie damit durch andere zu ersetzen. Das System, welches ich oben
beschrieben habe, könnte genutzt werden, um einen Anfangszustand zu definieren. Aber der Rest wird dann durch den Controller bestimmt.
Ich hoffe, ich konnte die Idee einigermaßen gut erklären. Werde mich
alsbald ransetzen und diesen Ansatz implementieren. Wird dann auch
direkt auf dieser Seite getestet werden. ;-)