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
und
in den passenden HTML-Kode umzusetzen.
Die Parameter haben die folgende Bedeutung:
$pagename
"Gruppe.EineSeite" sein.
MakeLink
() mit "iert" als $suffix aufrufen.
$LinkPageExistsFmt
und die $LinkPageCreateFmt
-Variablen,
$IMapLinkFmt
-Array oder von $UrlLinkFmt
.
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='' />" |
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
Übersetzung von PmWiki.MakeLink, Originalseite auf PmWikiDe.MakeLink — Backlinks
Zuletzt geändert: | PmWikiDe.MakeLink | am 06.05.2016 |
PmWiki.MakeLink | am 10.09.2011 |