Aktuelle Änderungen - Suchen:

PmWiki (deutsch) für die Liste aller Seiten


Englisch:

MakeLink

 s au engl PmWikiAnweisung

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:

  • $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. <target> in dem Textauszeichnungsbeispiel oben. Zum Beispiel könnte $target "EineSeite" sein, die sich auf <aktuelle-Gruppe>/EineSeite bezieht.
  • $text — ein String mit dem gewünschten Verweistext, d.nbsp;h. <text> in dem Textauszeichnungsbeispiel oben. Wenn $text NULL ist oder nicht angegeben ist, wird der Verweistext automatisch aus $target erzeugt, vorher wird alles in Klammern gesetzte entfernt.
  • $suffix — ein String, der an den Verweistext angehängt wird. Zum Beispiel, die Auszeichnung [[install]]iert würde MakeLink() mit "iert" als $suffix aufrufen.
  • $fmt — ein Formatstring, der den HTML-Kode definiert, der erzeugt wird. Wenn $fmt NULL ist oder nicht angegeben ist, wird das Standardformat verwendet, das durch den Typ des Verweises gegeben ist.
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?https://www.pmwiki.org/wiki/PmWikiDe/Images

Beispiele

Hier sind einige Beispiele zum Gebrauch von MakeLink().

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, aber 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.

Warum entfernt MakeLink() Klammern von dem Ziel?

Siehe Links#othertext, Link-Text innerhalb von (Klammern) wird nicht angezeigt, sodass [[(wiki) sandbox]] zu WikiSandbox führt, aber als sandbox angezeigt wird. für Adressen, die tatsächlich Klammern enthalten, benutzen Sie %28 und %29 https://www.example.com/linkwith%28parenthese%29. --Petko?

Kategorie: PmWikiInternals für die Liste aller Seiten


Originalseite auf PmWikiDe.MakeLink   —   Rückverweise

Zuletzt geändert:   PmWikiDe.MakeLinkam 27.09.2024
  
Bearbeiten - Versionen - Druckansicht - Aktuelle Änderungen - Suchen
Zuletzt geändert am 27.09.2024 06:29 Uhr