MakeLink
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(
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
⚠ $pagename, $
target, ⚠ $text, $
suffix, $fmt)
[[<text> -> <target>]]
und
[[<target> | <text>]]
in den passenden HTML-Kode umzusetzen.
Die Parameter haben die folgende Bedeutung:
- @@
⚠ $Pagename@@ — ein String mit dem Namen des Seitenkontextes, in dem der Verweis erzeugt wurde, typischerweise ist das einfach der Name der aktuellen Seite. Zum Beispiel könnte $
pagename "Gruppe.EineSeite" sein.
"⚠ $target@@ — ein String mit dem Ziel, d.nbsp;h. <code class='escaped'><target></code> in dem Textauszeichnungsbeispiel oben. Zum Beispiel könnte @@$
targetEineSeite
" sein, die sich auf<aktuelle-Gruppe>/EineSeite
bezieht.
NULL ist oder nicht angegeben ist, wird der Verweistext automatisch aus⚠ $text@@ — ein String mit dem gewünschten Verweistext, d.nbsp;h. <code class='escaped'><text></code> in dem Textauszeichnungsbeispiel oben. Wenn @@$
text$target
erzeugt, vorher wird alles in Klammern gesetzte entfernt.- @@
⚠ $suffix@@ — ein String, der an den Verweistext angehängt wird. Zum Beispiel, die Auszeichnung %pmhlt%<code class='escaped'>[[install]]iert</code> würde %hlt php%@@MakeLink()@@ mit "iert" als $
suffix aufrufen.
NULL ist oder nicht angegeben ist, wird das Standardformat verwendet, das durch den Typ des Verweises gegeben ist.⚠ $fmt@@ — ein Formatstring, der den HTML-Kode definiert, der erzeugt wird. Wenn @@$
fmt- Für Seitenverweise sind das die
⚠ $LinkPageExistsFmt und die $
LinkPageCreateFmt-Variablen, - für externe Verweise kommt es entweder vom
⚠ $IMapLinkFmt-Array oder von $
UrlLinkFmt.
- Für Seitenverweise sind das die
⚠ $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.
Beispiele
Hier sind einige Beispiele zum Gebrauch von MakeLink()
.
Aufruf: | MakeLink( |
Ergebnis: | "<a href='.../Gruppe/EineSeite'>EineSeite</a>" |
Aufruf: | MakeLink( |
Ergebnis: | "<a href='.../Gruppe/EineSeite'> Seite</a>" |
Aufruf: | MakeLink( |
Ergebnis: | "<a href='.../Gruppe/EineSeite'>mehr Text</a>" |
Aufruf: | MakeLink( |
Ergebnis: | "<a href='.../uploads/Group/datei.doc'>mehr Text</a>" |
Aufruf: | MakeLink( |
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
LinkPage()@@-Funktion aufruft.
⚠ $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
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, aber wenn %hlt php%@@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 04.01.2023 |
PmWiki.MakeLink | am 04.01.2023 |