MakeLink

für die Liste aller Seiten

Administratoren (Fortgeschritten), Entwickler

Diese Seite beschreibt eine interne Funktion in PmWikis Maschine namens MakeLink(). Der Inhalt ist nichts für Jene mit einem schwachen Herzen.

Siehe auch: Funktionen

Syntax:   MakeLink(⚠ $pagename, $target, ⚠ $text, $suffix, $fmt)

Die Funktion MakeLink(⚠ $pagename, $target, ⚠ $text, $suffix, $fmt) gibt einen String zurück, der HTML-Kode für einen Verweis enthält, entsprechend dem übergebenen Ziel, Text und Format. Die vornehmliche Aufgabe dieser Funktion ist, Textauszeichnungen wie

[[ <text> -> <target> ]]

und

[[ <target> | <text> ]]

in den passenden HTML-Kode umzusetzen.

Die Parameter haben die folgende Bedeutung:

Innerhalb des Formatstrings wird der Text "⚠ $LinkUrl" ersetzt durch den aufgelösten URL für den Verweis, während der Text "$LinkText" durch den zugehörigen Text ersetzt wird. Schließlich wird der Text "$LinkAlt" ersetzt durch alle "title"-Informationen (alternativer Text), die mit dem Verweise zusammenhängen.
Wie wird ein alternativer Text im Markup-Format angegeben?http://www.pmwiki.org/wiki/PmWikiDe/Images

Beispiele

Aufruf:MakeLink($pagename, "EineSeite")
Ergebnis:"<a href='.../Gruppe/EineSeite'>EineSeite</a>"
 
Aufruf:MakeLink($pagename, "(Eine) Seite")
Ergebnis:"<a href='.../Gruppe/EineSeite'> Seite</a>"
 
Aufruf:MakeLink($pagename, "Eine Seite", "mehr Text")
Ergebnis:"<a href='.../Gruppe/EineSeite'>mehr Text</a>"
 
Aufruf:MakeLink($pagename, "Attach:datei.doc", "mehr Text")
Ergebnis:"<a href='.../uploads/Group/datei.doc'>mehr Text</a>"
 
Aufruf:MakeLink($pagename, "eine seite", "mehr Text", "-suffix")
Ergebnis:"<a href='.../Gruppe/EineSeite'>mehr Text-suffix</a>"
 
Aufruf:MakeLink($pagename, "install(ation)", NULL, "iert")
Ergebnis:"<a href='.../Gruppe/Installation'>installiert</a>"
 
Aufruf:MakeLink(⚠ $pagename, $pagename, "EineSeite", , , "<a href='.../\$LinkUrl'>\$LinkText</a>")
Ergebnis:"<a href='.../Gruppe/EineSeite'>EineSeite</a>"
 
Aufruf:MakeLink(⚠ $pagename, "Attach:foo.gif", '', '', $ImgTagFmt)
Ergebnis:"<img src='.../uploads/foo.gif' alt='' />"

Fragen und Antworten

Woher kennt MakeLink() den Verweistyp?

Das Array ⚠ $LinkFunctions enthält eine Liste von Präfixen, die es erkennt, und aufzurufende Unterprogramm, die aufgerufen werden, wenn $target diesen Präfix enthält. Die Standardsetzungen von $LinkFunctions sehen etwa so aus:

   $LinkFunctions['http:'] = 'LinkIMap';
   $LinkFunctions['https:'] = 'LinkIMap';
   $LinkFunctions['mailto:'] = 'LinkIMap';
   # ...

Dadurch wird jedes Ziel, das wie ein Url aussieht, mit Hilfe der LinkIMap()-Funktion erzeugt. Für Anhänge haben wir

   $LinkFunctions['Attach:'] = 'LinkUpload';

das die LinkUpload()-Funktion aufruft, die Verweise für Anhänge behandelt.

Wenn ⚠ $target nicht auf das Muster einer der Präfixe in $LinkFunktions passt, nimmt MakeLink an, das Ziel ist ein Seitenname und es benutzt den Eintrag in $LinkFunktions['<page>'], der standardmäßig die LinkPage()-Funktion aufruft.

Danach ist es an der per-target-Funktion herauszubekommen, wie der Verweis korrekt zu formatieren ist. Jede Target-Funktion hat ihren eigenen Satz von ⚠ $...Fmt-Variablen, die das Formatieren des Ziels kontrollieren, nur wenn MakeLink() ein Wert für $fmt übergeben wird, ist die Funktion gehalten, dieses Format anstelle des eingebauten Standards einzusetzen. So sind wir in der Lage, Inline-Bilder einzufügen (siehe die "img"-Regel in scripts/stdmarkup.php), genauso wie wir MakeLink() nutzen können, um an andere Items des resulierenden Zielverweises heranzukommen.

Kategorie: PmWikiInternals für die Liste aller Seiten


Originalseite auf PmWikiDe.MakeLink   —   Rückverweise

Zuletzt geändert:   PmWikiDe.MakeLinkam 06.05.2016