Zum Inhalt springen

Hilfe:Vorlagen und Formulare – Fortgeschrittene Wikinutzung: Unterschied zwischen den Versionen

Aus Flora von Bayern
imported>Andreas Plank
K +Formulare
imported>Andreas Plank
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Ombox|text=Diese Seite ist noch unvollständig}}
{{Ombox|text=Diese Seite ist noch unvollständig und bedarf noch Evaluation durch Vorlagen-Programmier-Praxis.}}




Zeile 8: Zeile 8:


Sollte man eine selbsterklärende Benennung wählen? Beispiele:
Sollte man eine selbsterklärende Benennung wählen? Beispiele:
: <code><nowiki>{{Meine Vorlage|Parameter 1=Langer Text}}</nowiki></code> erklärt kaum selbsterklärend über Inhalt und Struktur der Vorlage
: die Vorlage <code><nowiki>{{Meine Vorlage|Parameter 1=Langer Text}}</nowiki></code> ist nicht selbsterklärend und enthält so gut wie keine Information über ihre Funktion und Struktur
: <code><nowiki>{{Anmerkung|Text=Langer Text}}</nowiki></code> ist in sich selbsterklärend und bedarf kaum einer Dokumentation
: die Vorlage <code><nowiki>{{Anmerkung|Text=Langer Text}}</nowiki></code> ist mehr selbsterklärend und bedarf kaum einer großen Zusatz-Dokumentation


Die deutsche Wikipedia bietet eine  
Die deutsche Wikipedia bietet eine  
Zeile 18: Zeile 18:


Die Benennung der Vorlage und deren Parameter sollte das Ziel haben:
Die Benennung der Vorlage und deren Parameter sollte das Ziel haben:
* schlank
* prägnante (funktionsbezogenen) Benennung
* übersichtlich und
* Parameter möglichst selbsterklärend
* selbsterklärend


Einige Vorüberlegungen:
Einige Vorüberlegungen und Lösungsvorschläge:


{{Logo|Frage|18px}} Möchte ich die Seiten „wiederfinden“, soll die Vorlage auf nur gewissen Seiten verwendet werden?<br />
; {{Logo|Frage|18px}} Möchte ich die Seiten „wiederfinden“, soll die Vorlage auf nur gewissen Seiten verwendet werden? : '''Lösung:''' Lassen Sie die Vorlage eine Kategorie speichern.
: '''Lösung:''' Lassen Sie die Vorlage eine Kategorie speichern.
; {{Logo|Frage|18px}} Möchte ich gezielte Daten auf Seiten „wiederfinden“? : '''Lösung:''' Speichern Sie Parameterwerte in Semantischen Attributen.
; {{Logo|Frage|18px}} Wie fein sollen die zu speichernden Daten in einen oder mehrere Parameter untergliedert werden? (Was will ich am Ende erreichen?): Beispiel „Adresse“:<ul><li>Reicht es, dass ''ein'' Vorlagen-Parameter gemischte Informationen enthält (z.B. Parameter „Adresse“ enthält Straße, PLZ, Ort)?</li><li>Oder sollen mehrere Parameter feingegliederte Daten abspeichern, damit nachträglich die Daten präziser abfragbar sind (z.B. statt 1&nbsp;Parameter „Adresse“ mehrere Parameter „PLZ“, „Ort“, „Straße“, „Hausnummer“ usw.)?</li></ul> '''Lösung:''' Jenachdem, was man mit den Daten machen will, muss man dies festlegen. Beabsichtigt man detailreiche semantische Listen oder Abfragen, so sollte man mehrere Vorlagenparameter benennen.


{{Logo|Frage|18px}} Reicht es, dass ein Parameter ein Mix an Informationen enthält (z.B. 1&nbsp;Parameter „Adresse“)?<br/>Oder sollen mehrere Parameter fein gegliederte Daten abspeichern, damit nachträglich die Daten genauer abfragbar sind (z.B. statt 1&nbsp;Parameter „Adresse“ mehrere Parameter „PLZ“, „Ort“, „Straße“, „Hausnummer“ usw.)?<br />
=== Maßgaben für das Vorlagen-Programmieren ===
: '''Lösung:''' Jenachdem, was man mit den Daten machen will, muss man sich entscheiden.
 
Im Grunde möchte man Vorlagen-Code schreiben:
* der zeitunaufwendig zu verwalten ist, d.h
* der selbsterklärend ist (braucht dann kaum Zusatzkommentare)
* der modular aufgebaut ist. Der Code kann daher flugs an andere Bedürfnisse angepasst werden, so dass einzelne Abschnitte gelöscht werden können (z.B. Abschnitt speichern semantischer Daten und separater Abschnitt Ausgabe als Layout) ohne dass der Rest-Code zusammenbricht.
* der wenig Ressourcen frisst. Kein sich wiederholender Code. Falls doch Code wiederholt gebraucht wird, dann auslagern, z.B. als Unter- oder separate Vorlage. [https://www.mediawiki.org/wiki/Extension:Variables/de Verwendung von Variablen] sollte man vermeiden, da derlei Vorlagen mangels Implementierung der Extension in anderen Wikis nicht funktionieren<ref name="biowikifarm:variables">In den Wikis der [http://biowikifarm.net/meta/Member_wikis Biowikifarm] ist diese Extension i.d.R. aktiviert, siehe hierzu immer die englische Version der Spezialseite [[Special:Version]]</ref>.


== Vorlage erstellen ==
== Vorlage erstellen ==
Zeile 46: Zeile 51:
# Klicken Sie auf [[Spezial:Einstellungen#mw-prefsection-rendering|Einstellungen (Tab Aussehen)]]
# Klicken Sie auf [[Spezial:Einstellungen#mw-prefsection-rendering|Einstellungen (Tab Aussehen)]]
# Klicken Sie unter (*) Vektor auf „Benutzerdefiniertes JavaScript“, eine neue Seite öffnet sich, auf der JavaScript gespeichert werden kann
# Klicken Sie unter (*) Vektor auf „Benutzerdefiniertes JavaScript“, eine neue Seite öffnet sich, auf der JavaScript gespeichert werden kann
# Kopieren Sie den Inhalt der Seite [[Benutzer:Andreas_Plank/vector.js]] in ihre eigene Seite
# Kopieren Sie den Inhalt der Seite [http://wiki.bayernflora.de/w/index.php?title=Benutzer:Andreas_Plank/vector.js&oldid=3912 Benutzer:Andreas_Plank/vector.js (vom 7. Januar 2014)] in Ihre eigene Seite


=== Zuordnen von Semantischen Attributen zu Vorlagen-Parametern ===
==== Zuordnen von Semantischen Attributen zu Vorlagen-Parametern ====


; 1 Parameter und 1 Wert : in der Vorlage <ul><!--  
Diese Zuordnung von semantischen Daten ist nur nötig, wenn man später gezielt semantische Daten wieder abfragen oder extrahieren möchte ([https://semantic-mediawiki.org/wiki/Help:Eingebettete_Abfrage <code><nowiki>{{#ask: … }}</nowiki></code>]). Es gibt 2 Fälle:
  --><li>Parameter + Attribuit sichtbar:<br /><code><nowiki>[[Attributname::{{{Vorl.-Parameter}}}]]</nowiki></code></li><!--  
; Der Vorlagenparameter speichert ''einen'' Wert : <ul><!--  
  --><li>Parameter + Attribuit '''unsichtbar''':<br /> <code><nowiki>[[Attributname::{{{Vorl.-Parameter}}}| ]]</nowiki></code> oder<br /><code><nowiki>{{#set:Attributname={{{Vorl.-Parameter}}} }}</nowiki></code></li></ul>
  --><li>Parameter + Attribuit ''sichtbar:''<br /><code>'''<nowiki>[[</nowiki>'''Attributname::{{{Vorl.-Parameter}}}''']]'''</code></li><!--  
; 1 Parameter und mehrere Werte (=Liste) : in der Vorlage <ul><!--  
  --><li>Parameter + Attribuit ''unsichtbar:''<br /> <code>'''<nowiki>[[</nowiki>'''Attributname::{{{Vorl.-Parameter}}}| ''']]'''</code> oder<br /><code>'''<nowiki>{{</nowiki>'''#set:Attributname={{{Vorl.-Parameter}}}'''}}'''</code></li></ul>
  --><li>Werteliste , Komma separiert<br /><code>'''{{'''<nowiki>#arraymap: {{{Vorl.-Parameter|}}}</nowiki>&lt;!-- Werte<br />-->|,&lt;!-- Trennung bei ,<br />-->|§&lt;!-- Einzelwert temporär in „§“ speichern<br />-->|<nowiki>[[Attributname::§]]</nowiki>&lt;!-- Ausgabe<br />-->|&amp;#32;•&amp;#32;&lt;!-- Ausgabe-Trenner<br />-->'''}}'''</code></li><!--  
; Der Vorlagenparameter soll mehrere getrennte Werte speichern können (=Werteliste): <ul><!--  
  --><li>Werteliste ; Semikolon separiert<br /><code>'''{{'''<nowiki>#arraymap: {{{Vorl.-Parameter|}}}</nowiki>&lt;!-- Werte<br />-->|;&lt;!-- Trennung bei ;<br />-->|§&lt;!-- Einzelwert temporär in „§“ speichern<br />-->|<nowiki>[[Attributname::§]]</nowiki>&lt;!-- Ausgabe<br />-->|&amp;#32;•&amp;#32;&lt;!-- Ausgabe-Trenner<br />-->'''}}'''</code></li></ul>
  --><li>Werteliste , Komma separiert<br /><table class="vertical-align-top"><!--
--><tr><!--
  --><th>Kommentarversion</th><!--
  --><th>Kompaktversion</th><!--
--></tr><tr><!--
  --><td style="border-right:1px dotted gray;padding-right:1em;"><code>'''{{'''<nowiki>#arraymap: {{{Vorl.-Parameter|}}}</nowiki><span class="comment-gray">&lt;!-- Werte<br />--></span>|,<span class="comment-gray">&lt;!-- Trennung bei ,<br />--></span>|§<span class="comment-gray">&lt;!-- Einzelwert temporär in „§“ speichern<br />--></span>|<nowiki>[[Attributname::§]]</nowiki><span class="comment-gray">&lt;!-- Ausgabe<br />--></span>|&amp;nbsp;•&amp;#32;<span class="comment-gray">&lt;!-- Ausgabe-Trenner:<br /> non-breaking-space dann • dann Leerzeichen<br />--></span>'''}}'''</code></td><!--
  --><td style="padding-left:1em;"><code>'''{{'''<nowiki>#arraymap: {{{Vorl.-Parameter|}}}</nowiki>|,|§|<nowiki>[[Attributname::§]]</nowiki>|&amp;nbsp;•&amp;#32;'''}}'''</code></td><!--
--></tr></table></li><!--  
  --><li>Werteliste ; Semikolon separiert<br /><table class="vertical-align-top"><!--
--><tr><!--
  --><th>Kommentarversion</th><!--
  --><th>Kompaktversion</th><!--
--></tr><tr><!--
  --><td style="border-right:1px dotted gray;padding-right:1em;"><code>'''{{'''<nowiki>#arraymap: {{{Vorl.-Parameter|}}}</nowiki><span class="comment-gray">&lt;!-- Werte<br />--></span>|;<span class="comment-gray">&lt;!-- Trennung bei ;<br />--></span>|§<span class="comment-gray">&lt;!-- Einzelwert temporär in „§“ speichern<br />--></span>|<nowiki>[[Attributname::§]]</nowiki><span class="comment-gray">&lt;!-- Ausgabe<br />--></span>|&amp;nbsp;•&amp;#32;<span class="comment-gray">&lt;!-- Ausgabe-Trenner:<br /> non-breaking-space dann • dann Leerzeichen<br />--></span>'''}}'''</code></td><!--
  --><td style="padding-left:1em;"><code>'''{{'''<nowiki>#arraymap: {{{Vorl.-Parameter|}}}</nowiki>|;|§|<nowiki>[[Attributname::§]]</nowiki>|&amp;nbsp;•&amp;#32;'''}}'''</code></td><!--
--></tr></table></li></ul>
 
Die obigen HTML-Kommentarzeichen <code>&lt;!-- --&gt;</code> werden beim Parsen ignoriert und können oft weggelassen werden, doch können sie dazu dienen
* Kommentare zu ermöglichen oder um
* unnötigen Leerzeichen vorzubeugen oder um
* den Wiki Code zu strukturieren.


Es sei angemerkt, dass auch der Assistent [[Spezial:Vorlage erstellen]] benutzt werden kann, jedoch sind seine Erstellmöglichkeiten limitiert, daher ist es oft sinnvoller die Vorlage mit obigem Formular selber zu erstellen.
Es sei angemerkt, dass auch der Assistent [[Spezial:Vorlage erstellen]] benutzt werden kann, jedoch sind seine Erstellmöglichkeiten limitiert, daher ist es oft sinnvoller die Vorlage mit obigem Formular selber zu erstellen.
== Attribut-Seiten erstellen ==
Seiten im Namensraum {{ns:property}} könnten eigentlich auch „Eigenschaft“ heißen, da sie Daten zu Eigenschaften speichern, die ein Wiki zu einem semantischen Wiki werden lassen. Mit folgendem Formular können Sie derlei Seiten erstellen und bearbeiten:
{{Eigenschaft erstellen oder bearbeiten}}


== Formulare erstellen ==
== Formulare erstellen ==


Wenn die Vorlage fertig programmiert ist, kann über den Assistenten [[Spezial:Formular erstellen]] ein namensgleiches Formular erstellt werden und angepasst werden. In diesem Wiki wurde das Layout von Formularen in [[MediaWiki:Common.css]] umdefiniert.
Wenn die Vorlage fertig programmiert ist, kann über den Assistenten [[Spezial:Formular erstellen]] ein namensgleiches Formular erstellt und angepasst werden. In diesem Wiki wurde das Layout von Formularen in [[MediaWiki:Common.css]] umdefiniert.


Die englische MediaWiki-Dokumention bietet eine ausführliche [https://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms technische Dokumentation zum Definieren von Formularen] an.
Die englische MediaWiki-Dokumention bietet eine ausführliche [https://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms technische Dokumentation zum Definieren von Formularen (in Englisch)] an.
 
=== Programmierung von Formularen ===
* das Layout sollte schlicht und selbsterklärend sein, möglichst wenig fette Schrift
* mehrere Felder, die sich fließenend der Bildschirmbreite anpassen sollen, können mit <code><nowiki><div class="floating-form-parts"></div></nowiki></code> umschlossen werden, gefolgt von einem abschließendem <code><nowiki><div style="clear:both;"></div></nowiki></code>, um das Umfließen zu beenden.
* Hilfe-Hinweise für Felder können
** mit <code><nowiki>{{{field|Vorlagenparameter|placeholder=prägnanter Hilfetext}}}</nowiki></code> oder
** mit <code><nowiki>{{#info: message=prägnanter Hilfetext}}</nowiki></code> {{#info: message=prägnanter Hilfetext}} gegeben werden.
[[Kategorie: Hilfe]]
[[Kategorie: Hilfe]]
== Anmerkungen ==
<references />

Aktuelle Version vom 19. März 2014, 14:59 Uhr


Vorlagen können mit der Extension Semantic Forms komfortabel bearbeitet werden. Dabei entspricht jeder Parameter der Vorlage einem gleichnamigen Formularfeld. Ebenso bezeichnet man die Vorlage und das Formular mit gleichem Namen, um Verwirrungen zu vermeiden.

Wie benenne ich die Vorlage und deren Parameter?

Sollte man eine selbsterklärende Benennung wählen? Beispiele:

die Vorlage {{Meine Vorlage|Parameter 1=Langer Text}} ist nicht selbsterklärend und enthält so gut wie keine Information über ihre Funktion und Struktur
die Vorlage {{Anmerkung|Text=Langer Text}} ist mehr selbsterklärend und bedarf kaum einer großen Zusatz-Dokumentation

Die deutsche Wikipedia bietet eine

Wie strukturiere ich die Vorlage und deren Parameter?

Die Benennung der Vorlage und deren Parameter sollte das Ziel haben:

  • prägnante (funktionsbezogenen) Benennung
  • Parameter möglichst selbsterklärend

Einige Vorüberlegungen und Lösungsvorschläge:

Frage Möchte ich die Seiten „wiederfinden“, soll die Vorlage auf nur gewissen Seiten verwendet werden?
Lösung: Lassen Sie die Vorlage eine Kategorie speichern.
Frage Möchte ich gezielte Daten auf Seiten „wiederfinden“?
Lösung: Speichern Sie Parameterwerte in Semantischen Attributen.
Frage Wie fein sollen die zu speichernden Daten in einen oder mehrere Parameter untergliedert werden? (Was will ich am Ende erreichen?)
Beispiel „Adresse“:
  • Reicht es, dass ein Vorlagen-Parameter gemischte Informationen enthält (z.B. Parameter „Adresse“ enthält Straße, PLZ, Ort)?
  • Oder sollen mehrere Parameter feingegliederte Daten abspeichern, damit nachträglich die Daten präziser abfragbar sind (z.B. statt 1 Parameter „Adresse“ mehrere Parameter „PLZ“, „Ort“, „Straße“, „Hausnummer“ usw.)?
Lösung: Jenachdem, was man mit den Daten machen will, muss man dies festlegen. Beabsichtigt man detailreiche semantische Listen oder Abfragen, so sollte man mehrere Vorlagenparameter benennen.

Maßgaben für das Vorlagen-Programmieren

Im Grunde möchte man Vorlagen-Code schreiben:

  • der zeitunaufwendig zu verwalten ist, d.h
  • der selbsterklärend ist (braucht dann kaum Zusatzkommentare)
  • der modular aufgebaut ist. Der Code kann daher flugs an andere Bedürfnisse angepasst werden, so dass einzelne Abschnitte gelöscht werden können (z.B. Abschnitt speichern semantischer Daten und separater Abschnitt Ausgabe als Layout) ohne dass der Rest-Code zusammenbricht.
  • der wenig Ressourcen frisst. Kein sich wiederholender Code. Falls doch Code wiederholt gebraucht wird, dann auslagern, z.B. als Unter- oder separate Vorlage. Verwendung von Variablen sollte man vermeiden, da derlei Vorlagen mangels Implementierung der Extension in anderen Wikis nicht funktionieren[1].

Vorlage erstellen

Vorlagen programmieren

Man erleichtert sich die Programmierung der Vorlagen, indem man den Wiki-Editor um Programmmier-Text-Schnipsel erweitert.

  1. Klicken Sie auf Einstellungen (Tab Aussehen)
  2. Klicken Sie unter (*) Vektor auf „Benutzerdefiniertes JavaScript“, eine neue Seite öffnet sich, auf der JavaScript gespeichert werden kann
  3. Kopieren Sie den Inhalt der Seite Benutzer:Andreas_Plank/vector.js (vom 7. Januar 2014) in Ihre eigene Seite

Zuordnen von Semantischen Attributen zu Vorlagen-Parametern

Diese Zuordnung von semantischen Daten ist nur nötig, wenn man später gezielt semantische Daten wieder abfragen oder extrahieren möchte ({{#ask: … }}). Es gibt 2 Fälle:

Der Vorlagenparameter speichert einen Wert
  • Parameter + Attribuit sichtbar:
    [[Attributname::{{{Vorl.-Parameter}}}]]
  • Parameter + Attribuit unsichtbar:
    [[Attributname::{{{Vorl.-Parameter}}}| ]] oder
    {{#set:Attributname={{{Vorl.-Parameter}}}}}
Der Vorlagenparameter soll mehrere getrennte Werte speichern können (=Werteliste)
  • Werteliste , Komma separiert
    KommentarversionKompaktversion
    {{#arraymap: {{{Vorl.-Parameter|}}}<!-- Werte
    -->
    |,<!-- Trennung bei ,
    -->
    |§<!-- Einzelwert temporär in „§“ speichern
    -->
    |[[Attributname::§]]<!-- Ausgabe
    -->
    |&nbsp;•&#32;<!-- Ausgabe-Trenner:
    non-breaking-space dann • dann Leerzeichen
    -->
    }}
    {{#arraymap: {{{Vorl.-Parameter|}}}|,|§|[[Attributname::§]]|&nbsp;•&#32;}}
  • Werteliste ; Semikolon separiert
    KommentarversionKompaktversion
    {{#arraymap: {{{Vorl.-Parameter|}}}<!-- Werte
    -->
    |;<!-- Trennung bei ;
    -->
    |§<!-- Einzelwert temporär in „§“ speichern
    -->
    |[[Attributname::§]]<!-- Ausgabe
    -->
    |&nbsp;•&#32;<!-- Ausgabe-Trenner:
    non-breaking-space dann • dann Leerzeichen
    -->
    }}
    {{#arraymap: {{{Vorl.-Parameter|}}}|;|§|[[Attributname::§]]|&nbsp;•&#32;}}

Die obigen HTML-Kommentarzeichen <!-- --> werden beim Parsen ignoriert und können oft weggelassen werden, doch können sie dazu dienen

  • Kommentare zu ermöglichen oder um
  • unnötigen Leerzeichen vorzubeugen oder um
  • den Wiki Code zu strukturieren.

Es sei angemerkt, dass auch der Assistent Spezial:Vorlage erstellen benutzt werden kann, jedoch sind seine Erstellmöglichkeiten limitiert, daher ist es oft sinnvoller die Vorlage mit obigem Formular selber zu erstellen.

Attribut-Seiten erstellen

Seiten im Namensraum Attribut könnten eigentlich auch „Eigenschaft“ heißen, da sie Daten zu Eigenschaften speichern, die ein Wiki zu einem semantischen Wiki werden lassen. Mit folgendem Formular können Sie derlei Seiten erstellen und bearbeiten:


Formulare erstellen

Wenn die Vorlage fertig programmiert ist, kann über den Assistenten Spezial:Formular erstellen ein namensgleiches Formular erstellt und angepasst werden. In diesem Wiki wurde das Layout von Formularen in MediaWiki:Common.css umdefiniert.

Die englische MediaWiki-Dokumention bietet eine ausführliche technische Dokumentation zum Definieren von Formularen (in Englisch) an.

Programmierung von Formularen

  • das Layout sollte schlicht und selbsterklärend sein, möglichst wenig fette Schrift
  • mehrere Felder, die sich fließenend der Bildschirmbreite anpassen sollen, können mit <div class="floating-form-parts"></div> umschlossen werden, gefolgt von einem abschließendem <div style="clear:both;"></div>, um das Umfließen zu beenden.
  • Hilfe-Hinweise für Felder können
    • mit {{{field|Vorlagenparameter|placeholder=prägnanter Hilfetext}}} oder
    • mit {{#info: message=prägnanter Hilfetext}} prägnanter Hilfetext gegeben werden.

Anmerkungen

  1. ↑ In den Wikis der Biowikifarm ist diese Extension i.d.R. aktiviert, siehe hierzu immer die englische Version der Spezialseite Special:Version