Vorlage:If pagename
Diese Vorlage wurde am 5. Februar 2014 von Template:When pagename is der englischen Wikipedia importiert. Statt Änderungen hier auf Wikivoyage vorzunehmen, sollte eine neuer Import vorgezogen werden, falls im originalen Wiki neue Funktionen hinzugekommen sind. Stimme dich dazu bitte mit der Community in der Vorlagenwerkstatt ab. |
Diese Vorlage sollte nicht direkt in einem Artikel benutzt, sondern von einer anderen Vorlage aus aufgerufen werden. |
Funktion
Dies ist die Metavorlage {{If pagename}}. Sie hilft Vorlagen zu erkennen, auf welcher Seite sie sich befinden. Diese Vorlage benutzt für diesen Zweck Textmustererkennung. So lässt sich die Ausgabe etwas auf Unterseiten wie zum Beispiel /Archiv
beschränken, oder für bestimmte Seiten unterschiedlicher Inhalt generieren. Im Wesentlichen gibt es dafür zwei Gründe:
- Eine Vorlage wird auf unterschiedlichen Seiten eingesetzt.
- Man möchte die Ausgabe von Inhalt außerhalb des definierten Anwendungsbereiches einer Vorlage vermeiden, sollte ein Nutzer eine Vorlage an nicht vorgesehener Stelle verwenden.
Verwendung
Die Vorlage nimmt einen oder mehrere Parameter auf. Die meisten Parameter haben keine festgelegten Bezeichnungen sondern sind eher Bestandteil der Textmustererkennung wie im folgenden Beispiel:
{{If pagename | /doku = Das ist Dokumentationsseite | other = Das ist eine sonstige Seite }}
Auf der Seite Template:Example/doku
würde folgendes ausgegeben werden:
- Das ist Dokumentationsseite
Auf jeder anderen Seite als einer /doku
Seite erscheint dann folgendes:
- Das ist eine sonstige Seite
Dies ist die Beschreibung für die Textmuster, die die Vorlage interpretieren kann:
{{if pagename <!-- kompletter Artikelname --> | User:Example/test = Text für "User:Example/test". | User:Example = Text für "User:Example". | User talk:Example = Text für "User talk:Example". <!-- kompletter Artikel inklusive aller Unterseiten --> | User:Example/+ = findet "User:Example" and "User:Example/test". <!-- Seitenname, namensraumunabhängig --> | Example = findet "User:Example", "User talk:Example", "Template:Example" usw. , aber nicht "User:Example/something". <!-- alle Unterseiten, aber nicht die Hauptseite --> | User:Example/* = findet "User:Example/something", aber nicht "User:Example". | User talk:Example/* = findet "User talk:Example/something". <!-- alle Unterseiten, aber nicht die Hauptseite; namensraumunabhängig --> | Example/* = findet "User:Example/something" und "User talk:Example/something". <!-- Unterseiten --> | /something = findet jede Unterseite mit dem Namen "/something". | /doc = findet jede Unterseite mit dem Namen "/doc". <!-- Unterseiten (case-insensitive) --> | /some* = Findet jede Unterseite, egal ob "/some" or "/Some". | /arch* = findet zum Beispiel "User talk:Example/Archive 1". <!-- Standardfilter --> | basepage = rindet jede Basisseite. | subpage = findet jede Unterseite. | other = findet jede Seite. }}
Hinweis: Die Mustererkennung arbeitet jedes Muster in der Reihenfolge ab, wie sie hier drüber zu sehen ist. Es gibt kein theoretisches Limit für die Anzahl der Parameter in der Vorlage. Das praktische Limit liegt bei der Performance der Server und Mediawiki-Software.
Die meisten Muster achten auf Groß- und Kleinschreibung. So findet zum Beispiel /test
" die Seite "User:Example/test", aber nicht "User:Example/Test". Partielle Bezeichnungen von Unterseiten wie zum Beispiel /some*
unterliegen einigen Einschränkungen (siehe auch weiter unten in dieser Dokumentation).
Wenn ein leerer (aber definierter) Parameter passt, stoppt die Textmustererkennung und die Vorlage liefert eine leere Zeichenkette zurück. Dies ist gewollt und kann folgendermaßen genutzt werden:
{{If pagename | /Doku = | /Sandkasten = Sandkastentext | other = Sonstiger Text }}
Der Code gibt nichts zurück, wenn auf einer /Doku
Seite angewendet, aber auf einer Sandkastenseite erscheint das:
- Sandkastentext
Ist es aber keine /Doku
Seite erscheint folgendes:
- Sonstiger Text
Partielle Seitenbezeichnungen
Die Vorlage erkennt auch Teile von Seitennamen:
{{If pagename | /archiv* = Text für Archivseiten | other = Anderer Text }}
Auf Benutzer:Beispiel/Archiv 1
wird folgendes ausgegeben:
- Text für Archivseiten
Der Parameter /some*
muss klein geschrieben werden, aber er erkennt groß und klein geschriebene Unterseiten wie User:Example/SomeThing
und User:Example/something
. Die Teilerkennung funktioniert allerdings nur mit 4, 6 und 8 Zeichen. Somit funktionieren /some*
, /someth*
und /somethin
, aber /som*
oder /somet*
zeigen keine Wirkung.
Längere Teilzeichenketten greifen zuerst zu. Wenn /somethin
und /some*
auf der Seite User:Example/Something
definiert sind, wird/somethin
zuerst benutzt.
Der Parameter „page“
Für Test- und Demonstrationszwecke gibt es den Parameter page. Auf folgende Weise wird er angewandt:
{{If pagename | /test = Text für Test-Seiten | other = Text für andere Seiten | page = Template:Example/test }}
Egal, wo die Vorlage eingebunden ist. Es wird immer folgendes zurückgegeben:
- Text für Test-Seiten
Der Parameter page lässt die Vorlage arbeiten als würde sie sich exakt auf dieser Seite befinden. Eine solche Seite muss auch nicht in Wirklichkeit existieren. Wird der Parameter benutzt und leer gelassen, wird die aktuelle Seite zugrunde gelegt.
Möchtest du, dass deine Vorlage den page Parameter auch versteht und sich ähnlich wie diese Metavorlage verhält, kannst du diese Vorlage folgendermaßen einbinden:
{{If pagename | /test = Text für Test-Seiten | other = Text für andere Seiten | page = {{{page|}}} }}
Erkennung von Namensräumen
Die Vorlage besitzt keine Namensraumerkennung. Dazu musst du sie mit den nötigen weiteren Metavorlagen wie z. B. {{Template other}} verbinden. Beispiel:
{{Template other | {{If pagename | /Doku = Text für Dokuseiten. }} | <!-- Anderer Ort - nichts tun --> }}
Auf der Seite „Benutzer:Beispiel/Doku“ soll nichts passieren, aber auf „Vorlage:Beispiel/Doku“. So geht's:
Technische Informationen
Die Vorlage arbeiten auf allen Namensräumen gleich, selbst wenn das MediaWiki-Feature subpage feature deaktiviert ist.
Weitere Vorlagen für den Umgang mit Namensräumen
Die folgenden Vorlagen beschränken die Ausgabe auf einen Namensraum und bieten für alle anderen Namensräume eine Alternative. Verschachtelungen sind möglich.
{{Main other|Auszugebender Text}}
– Für Ausgaben im Artikelnamensraum{{Talk other|Auszugebender Text}}
– Für Ausgaben auf Diskussionsseiten{{User other|Auszugebender Text}}
– Für Ausgaben auf Benutzerseiten{{Wikivoyage other|Auszugebender Text}}
– Für Ausgaben im Projektnamensraum{{Template other|Auszugebender Text}}
– Für Ausgaben auf Vorlagenseiten{{Help other|Auszugebender Text}}
– Für Ausgaben auf Hilfeseiten{{File other|Auszugebender Text}}
– Für Ausgaben im Dateinamensraum{{Category other|Auszugebender Text}}
– Für Ausgaben auf Kategorieseiten{{Portal other|Auszugebender Text}}
– Für Ausgaben im Portalnamensraum{{Module other|Auszugebender Text}}
– Für Ausgaben auf Modulseiten{{Single namespace|Namensraum|Auszugebender Text}}
– Allgemeine Form für die obigen Vorlagen, der die Bezeichnung des Namensraums als Parameter mit übergeben wird
Weitere Werkzeuge zur Erkennung und Behandlung von Namensräumen
{{Namespace detect|Namensraum|Auszugebender Text|Alternativer Text}}
– Die vielseitigere Version der obigen Vorlagen{{NAMESPACEID|<optionaler Namensraum>}}
– Die Vorlage fungiert als magisches Wort und liefert die Nummer des Namensraums des Artikels oder man übergibt eine Namensraumbezeichnung{{Incorrect namespace|Namensraum}}
– Erzeugt eine Ausgabe und Fehlerkategorisierung, wenn eine Vorlage im falschen Namensraum benutzt wird{{Category handler|Namensraum = Kategorie|...}}
– Erlaubt eine namensraumabhängige Kategorisierung.
Behandlung und Erkennung von Artikelbezeichnungen:
Weitere technische Informationen:
- Wikivoyage:Namensräume – Listet und erklärt alle Namensräume.
- Magische Wörter – aktuelle Dokumentation zu den magischen Wörtern auf dem Mediawiki-Wiki.
- Parserfunktionen – Dokumentation zu Parserfunktionen wie z. B.
{{#ifeq:|||}}
etc.
- Die obige Dokumentation wurde aus der Seite Vorlage:If pagename/Doku eingefügt. (bearbeiten | Versionsgeschichte) Die Kategorien für diese Vorlage sollten in der Dokumentation eingetragen werden. Die Interwiki-Links sollten auf Wikidata eingepflegt werden.
- Liste der Unterseiten