Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs

Navigation durch Webseiten mit Hilfe der Content Linking Komponente

Geschrieben von: Christian Holm
Kategorie: ASP Grundlagen

This printed page brought to you by AlphaSierraPapa

Eine Website mit einigen Unterseiten sollte immer eine Navigationsmöglichkeit bieten. Eine einfache Möglichkeit hierzu bietet die Verwendung der Content Linking Komponente. Diese ermöglicht es, Ihre Site wie ein Buch zu präsentieren bzw. zu organisieren. Auch wenn weitere Seiten hinzukommen, ist der Aufwand gering, diese nachträglich einzubinden.

Die Content Linking Komponente ist bereits ab dem Internet Information Server (IIS) Version 4 verfügbar, und wird standardmäßig mitinstalliert.

Voraussetzungen für die Verwendung der Komponente:

Um diese Komponente zu verwenden gehen Sie wie folgt vor:

Erstellen der Content Linking List Datei

Bei Sites mit mehreren Unterseiten mußten Sie diese mit Links verknüpfen, um diese aufzurufen. Bei nachträglichen Site-Aktualisierungen bei denen sich die Sitestruktur geändert hat, d. h. Unterseiten hinzugefügt oder entfernt wurden, mußten Sie diese "Verknüpfungs-Links" händisch aktualisieren. Bei umfangreichen Sites kann dies unter Umständen zu Fehlern führen. Mit dieser Komponente, welche in ASP inkludiert ist und wie schon erwähnt, mit IIS mit installiert wird, bietet sich eine einfache Möglichkeit an dies zuvermeiden.

Erstellen Sie eine Datei, welche aus der Inhaltstextdatei die benötigten Navigationsinformationen ausliest z.B. linkinhalt.asp. Diese wird als Includedatei ausgelegt, die an mehreren Stellen wiederverwendet werden wird.

Diese Datei ist das Inhaltsverzeichnis Ihrer Website und wird im TXT-Format abgespeichert. Sie enthält die URLs der Seiten die innerhalb der Site verlinkt werden sollen, deren Beschreibung und eventuell ein Kommentar. Die Trennung der Informationen erfolgt durch Tabulatoren, damit die Komponente die Informationen richtig einliest. Im folgenden Beispiel sind die Tabulatoren durch den String <TAB> gekennzeichnet.

Beispiel einer Content Linking List Datei (z.B. inhalt.txt):

1:	default.asp<TAB>Hauptseite
2:	sub1.asp<TAB>Unterseite 1
3:	sub2.asp<TAB>Unterseite 2
4:	sub3.asp<TAB>Unterseite 3 

Sie können jede beliebige Datei welche auf Ihrem lokalen Serververzeichnis physikalisch gespeichert ist, angeben. URLs die nicht auf ihrem lokalen Serververzeichnis vorhanden sind, also "http:// - URLs" werden von der Komponente nicht unterstützt und ignoriert.

Beachte Sie sollten Mehrfacheinbindungen von ein und derselben Seite vermeiden. Wenn Sie also in Ihrer Content Linking List Datei die folgende Reihenfolge stehen haben: Hautpseite-Seite A- Seite B- Seite A- Seite C, werden Sie wenn Sie auf der Seite B sind und auf die Nächste wechseln wollen, wieder auf die Seite A verwiesen. Das kommt daher, da die Content Linking List Datei sequentiell vom Anfang ausgelesen wird.

Einbinden der Content Linking Komponente

Alle Links zu den Seiten werden mit ihrer URL und einer Beschreibung in einer Textdatei ("Content Linking List Datei") gespeichert, die Sie bereits in der vorangegangenen Sektion kennengelernt haben. Ändern Sie diese, so wird das Site-Inhaltsverzeichnis und die Links automatisch aktualisiert - und zwar mit Hilfe der Content Linking Komponente.

Content Linking Komponente unterstützt folgende Methoden:

MethodeBeschreibung
GetListCountGibt die Anzahl der Elemente in der Content Linking List Datei zurück
GetListIndexZeigt den Index der aktuellen Seite in der Content Linking List Datei. Wenn man als Ergebnis Null (0) erhält, ist die Seite nicht in der Datei enthalten.
GetPreviousURLGibt die URL der vorigen Seite in der Liste zurück; wenn die aktuelle Seite nicht Element der Liste ist wird der erste Eintrag der Liste zurückgegeben.
GetNextURLGibt die URL der nächsten Seite in der Liste zurück; wenn die aktuelle Seite nicht Element der Liste ist wird der letzte Eintrag der Liste zurückgegeben.
GetPreviousDescriptionZeigt die Beschreibung des vorigen Links der Liste
GetNextDescriptionZeigt die Beschreibung des nächsten Links der Liste
GetNthURLGibt die URL des n-ten Elements der Liste zurück; falls es weniger als n Elemente gibt wird das Letzte der Liste zurückgegeben.
GetNthDescriptionZeigt die Beschreibung des n-ten Elements der Liste

Mit Hilfe dieser Methoden als auch der Content Linking List Datei (inhalt.txt) kann man ASP Seiten einfach verknüpfen. Damit diese Funktionalität nicht über mehrere Seiten verstreut und somit dupliziert wird, habe ich die Funktionalität in eine Datei Namens linkinhalt.asp zusammengefasst:

 1: <% @LANGUAGE = "VBScript" %>
 2: <% 
 3: ' Option Explicit
 4:  
 5: ' Variablen definieren
 6: Dim ListCount,ListIndex, PrevURL,NextURL
 7: Dim PrevDesc,NextDesc,CurrDesc
 8: Dim objContLink
 9: 
10: ' Das NextLink Objekt erstellen
11: Set objContLink = Server.Createobject("MSWC.NextLink") 
12: 
13: ' Verwendung einiger Methoden der Component Linking Komponente 
14: ' um Informationen der beinhaltenden URLs zu erhalten
15: ListCount = objContLink.GetListCount("inhalt.txt")
16: ListIndex = objContLink.GetListIndex("inhalt.txt")
17: PrevURL = objContLink.GetPreviousURL("inhalt.txt") 
18: NextURL = objContLink.GetNextURL("inhalt.txt")
19: PrevDesc = objContLink.GetPreviousDescription("inhalt.txt")
20: NextDesc = objContLink.GetNextDescription("inhalt.txt")
21: CurrDesc = objContLink.GetNthDescription("inhalt.txt", ListIndex)
22: Response.Write("<table width='100%'><tr>")
23: 
24: ' Überprüfen ob es die erste Seite ist, damit nicht eine 
25: ' ungültige URL angezeigt wird
26: If ListIndex <> 1 Then
27:   Response.Write("<td align=left><A HREF=" & PrevURL & _
28:     ">" & PrevDesc & "</A></td>")
29: End If
30: 
31: ' Überprüfen ob es die letzte Seite ist, damit nicht eine 
32: ' ungültige URL angezeigt wird 
33: If ListCount <> ListIndex Then
34:   Response.Write("<td align=right><A HREF=" & NextURL & _
35:     ">" & NextDesc & "</A></td>")
36: End If
37: Response.Write("</tr></table>")
38: Response.Write("<hr>")
39: 
40: ' Aktuelle Seitenbeschreibung schreiben
41: Response.Write("<br><br><center><h2>" & _
42:   CurrDesc & "</h2></center>")
43:   
44: Set objContLink = Nothing
45: %>

Zeile 5 bis 11: Hier werden die benötigten Variablen deklariert, und das NextLink Objekt erstellt.

Zeile 15 bis 22: Verwendung einiger Methoden der Component Linking Komponente um Informationen aus der Content Linking Datei zu erhalten, wie z.B. die nächste URL, vorige URL, die Beschreibung der URL. Diese Informationen werden aus der inhalt.txt Datei gewonnen. Beschreibung der einzelnen Methoden siehe oben.

Seiten erstellen

Wir haben jetzt den Sourcecode für das Linken von Seiten - es fehlen uns jetzt noch einige Testseiten. Diese sollten sinnvollerweise die Namen der URLs aus der Content Linking List Datei haben (ok, das war nun aber zu offensichtlich <g>).

Hier sei ein Beispiel der ersten Seite angegeben (default.asp):

 1: <html>
 2: <head>
 3: <title>Hauptseite</title>
 4: </head>
 5: <body>
 6: <!-- #include file="linkinhalt.asp" -->
 7: <hr>
 8: Das ist die Startseite
 9: </body>
10: </html>

In Zeile 6 wird die Datei linkinhalt.asp eingebunden, welche den Navigationscode enthält. Die ASP Datei selbst hat keinen anderen VBScript Code aufzuweisen.

Der folgende Screenshot zeigt die Startseite im Explorerfenster:

Da dies die Startseite bzw. der erste Listeneintrag der Datei inhalt.txt ist, wird hier nur die nächste URL - "Unterseite 1" - angezeigt.

Der folgende Screenshot zeigt die erste Unterseite "Unterseite 1" im Explorerfenster:

Da dies nicht mehr der erste Listeneintrag der Datei inhalt.txt ist, wird hier sowohl die vorige URL "Hauptseite" als auch die nächste URL "Unterseite 2" angezeigt.

Schlußbemerkung

Dieser Artikel beschreibt die grundsätzliche Einbindung der Content Link Komponente in Websites. Dem Artikel lag nur ein grundsätzliches Beispiel zugrunde, um dem Leser einen möglichst einfachen Einstieg zu ermöglichen. Natürlich können die Funktionen der Komponente für weitere Dinge ausgebaut werden - Inhaltsverzeichnisse, zum Beispiel.

This printed page brought to you by AlphaSierraPapa

Download des Codes

Klicken Sie hier, um den Download zu starten.
http://www.aspheute.com/code/20000705.zip

 

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.