Wie generieren Sie die Navigation in der Website?

8

Ich bin daran interessiert, wie andere Leute mit der Navigation in Webseiten umgehen. Nicht der Styling- oder Usability-Teil, sondern der Generierungsteil. Die meisten Websites haben eine Art "Navigationsbaum", der in Form einer oder mehrerer Menüebenen angezeigt wird - in welcher Form speichern und verarbeiten Sie diesen Baum? Die einfachste Lösung ist eine statische Menüvorlage, etwa so:

%Vor%

Aber das ist nicht sehr flexibel. Sie können nicht einfach die aktuelle Seite im Menü markieren und es gibt keine einfache Möglichkeit, einen Teil der Menüstruktur abhängig von der aktuellen Seite ein- oder auszublenden. (Oder ist es?)

Ich habe einen Navigationsbaum entwickelt, etwa so:

%Vor%

Dieser Baum wird von einer speziellen Navigation -Klasse geladen, die abhängig vom aktuellen Anfragepfad Teile der Navigation bedienen kann. Das scheint ein bisschen besser zu funktionieren, aber ich bin immer noch sehr neugierig auf die Lösungen anderer Leute.

    
zoul 07.12.2009, 13:53
quelle

8 Antworten

6

MySQL hat einen Artikel mit dem Titel "Hierarchische Daten in MySQL verwalten" , den ich zuvor hatte gefunden, um ziemlich unbezahlbar zu sein. Es beschreibt zwei gebräuchliche Techniken zum Speichern der dynamischen Navigation und ihrer Einschränkungen.

    
Corey Ballou 07.12.2009, 13:57
quelle
5

Wenn ASP.NET Ihr Geschmack ist, funktionieren Sitemaps großartig

    
kd7 07.12.2009 13:54
quelle
4

Vielleicht findest du eines meiner Module nützlich: CatalystX :: Menu :: Suckerfish

Die Menüstruktur wird aus Methodenattributen generiert. Es fehlt eine Möglichkeit, den Status des Menüeintrags der aktuellen Seite zu ändern, aber das sollte nicht schwierig hinzuzufügen sein.

Die Methodenattribute sind willkürliche Zeichenfolgen MenuPath und MenuTitle, die einen durch Schrägstriche getrennten Pfad für die Menüoption in der Struktur und eine Zeichenfolge angeben, die als Menüoptionsmarkierung und gegebenenfalls als HTML-Titelattribut verwendet wird.

    
converter42 07.12.2009 15:54
quelle
3

Wir verwenden einen Ansatz ähnlich dem Ihren mit der Menühierarchie, die in der Datenbank gespeichert ist. Es wäre schön, stattdessen die Menüstruktur basierend auf den Versandmethoden automatisch zu generieren, aber es gibt weitere Vorteile für den DB-Ansatz. Zum Beispiel können wir den Zugriff ändern / einschränken, ohne die Anwendung neu zu erstellen, und wir können Menüelemente erstellen, die nicht dem Dispatch-Baum zugeordnet sind, z. B. externe Links. Wir können auch beliebig lange Beschriftungen bereitstellen, die nicht unbedingt dem Versandpfad zugeordnet sind, um den Menschen die Arbeit zu erleichtern.

Der Hauptnachteil (abgesehen davon, dass der Dispatcherbaum dupliziert werden muss) ist, dass die Verwaltung der hierarchischen Daten in MySQL ein wenig peinlich ist. Siehe cballous Antwort für eine gute Quelle zu diesem Thema.

    
Adam Bellaire 07.12.2009 16:43
quelle
2

Wenn es darum geht, Teile des Baumes anzuzeigen und zu verstecken, ist CSS dein Freund.

Zum Beispiel kann Ihr Früchte-Untermenü

sein

id="fruitmenu"

Sie legen alle Untermenüs auf

fest

display:none;

oben auf Ihrem Stylesheet.

Dann verwenden Sie eine ID im Body-Tag jeder Seite, um sie gemäß einer spezifischeren Regel sichtbar zu machen.

So zum Beispiel auf Ihrer Obstseite, die

hat

<body id="fruitpage">

Das Obst-Untermenü ist sichtbar, da es von einer Regel wie

gesteuert wird

#fruitpage #fruitmenu {display:block;}

    
AmbroseChapel 08.12.2009 01:59
quelle
1

SQL Server 2008 hat einen raffinierten neuen Datentyp namens "HierarchyID", der ein Los von den Kopfschmerzen des Arbeitens mit hierarchischen Daten wegnimmt.

    
Matthew Groves 07.12.2009 14:45
quelle
0

Vielleicht finden Sie das nützlich:

Hierarchische Daten in einer Datenbank speichern

    
Alan Haggai Alavi 25.12.2009 18:03
quelle
-2

Die Google Webmaster-Tools bieten einige nützliche Ideen und Unterstützung beim Erstellen und Verwalten von Sitemaps:

Upgradingdave 07.12.2009 14:35
quelle

Tags und Links