WaBis

walter.bislins.ch

Makro: NavLink

Das Wiki stellt einen Mechanismus zur Verfügung, mit dem ein Wiki in mehrere Teile gegliedert werden kann. Um dem Anwender bei jeder Seite anzuzeigen, zu welchem Bereich die Seite gehört, kann man einen Pfad der folgenden Art irgendwo auf der Seite anzeigen:

Home > Wiki 1 > Bereich 2 > Aktuelle Seite

Diese Anzeige muss der Webmaster beim Erstellen des Web-Layouts erzeugen. Die Texte werden jedoch vom Wiki gespeichert (auch im Cache) und können von den Layout-Funktionen aus diesem Speicher abgerufen werden.

Das Makro NavLink ermöglicht das Hinzufügen eines Link-Eintrages in diesen Speicher. Die Seite Aktuelle Seite müsste folgenden Aufruf des Makros NavLink irgendwo auf der Seite haben:

{{NavLink|Infos zum Bereich|Bereich 2}}

Syntax

{{NavLink|PageName|ShortText}}
PageName
Name einer Seite, die beim Anklicken des Links im Pfad aufgerufen werden soll.
ShortText (optional)
Kurzer Text, der im Pfad an Stelle von PageName angezeigt werden kann. Wird ShortText nicht angegeben, so wird PageName an dieser Stelle abgespeichert.

Anwendung

Angenommen das Layout-Script zeigt im Header einen Pfad an wie oben angezeigt. Dieser Pfad setzt sich zusammen aus einem Home-Link, gefolgt von einem Link zur Startseite eines bestimmten Wikis (Wiki 1). Zuletzt wird der Name der aktuellen Seite angezeigt. Dazwischen können nun noch Links zu Startseiten von bestimmten Bereichen im Wiki 1 platziert werden. Diese Links werden mit dem Makro NavLink auf den jeweiligen Seiten definiert. Die Daten werden im Wiki-Speicher AppliNavLinkItems abgespeichert, zu denen es Programmier-Schnittstellen für das Layout-Script gibt.

Das Layout-Script kann mit folgender Funktion einen Eintrag im Wiki abspeichern:

AddNavLinkItem aLink, aText, aShortText
aLink
Lokaler HTML-Link zu einem Wiki oder einer Wiki-Seite (z.B. index.asp?page=Seitenname).
aText
Zum Beispiel der Name der Seite oder eines Bereiches.
aShortText
Wenn der Name eines Bereiches für die Anzeige im Pfad zu lange ist, kann hier ein Kurzname angegeben werden.

Das Makro NavLink erstellt aus dem Argument PageName einen HTML-Link zur Seite und ruft obige Funktion zum Speichern der Daten wiefolgt auf:

MakeHtmlLink PageName, HtmlLink
if ShortText = "" then ShortText = PageName
AddNavLinkItem HtmlLink, PageName, ShortText

Das Layout-Script kann nun die so gespeicherten Daten abrufen und eine Pfad-Darstellung daraus generieren:

Writeln "<a href=""../index.asp"">Home</a> &gt; "
Writeln "<a href=""index.asp"">Wiki 1</a> &gt; "
if NavLinkSize() > 0 then
  for i = 0 to NavLinkSize()-1
    Writeln "<a href=""" & NavLinkUrl(i) & """>" & _
            EncHtmlTags(NavLinkShortText(i)) & "</a> &gt; "
  next
end if
Writeln "<b>" & PageName & "</b>"

Beachte: Damit HTML-Tags in PageName und ShortText als solche angezeigt und nicht ausgeführt werden, müssen diese Texte mit der Funktion EncHtmlTags() bei der Ausgabe codiert werden.

Das Wiki sorgt selbst dafür, dass die mit dem Makro NavLink gespeicherten Einträge im Seiten-Cache landen und rechtzeitig wieder von dort geladen werden.

Für das Abrufen der gespeicherten Daten stehen dem Layout-Script die folgenden Funktionen im Wiki zur Verfügung:

NavLinkSize()
NavLinkUrl( i )
NavLinkText( i )
NavLinkShortText( i )
Weitere Infos zur Seite
Erzeugt Sonntag, 7. Oktober 2012
von wabis
Zum Seitenanfang
Geändert Sonntag, 7. Oktober 2012
von wabis