Benutzer:Rene/SGPack: Unterschied zwischen den Versionen

aus Stargate Wiki, dem deutschsprachigen Stargate-Lexikon
Zur Navigation springen Zur Suche springen
VideoPlayer: Hinweis auf Player API
 
(14 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 5: Zeile 5:
<div style="float: right;">[[Datei:Nuvola_apps_kservices.png|80px|verweis=]]</div><h2>Installation</h2>
<div style="float: right;">[[Datei:Nuvola_apps_kservices.png|80px|verweis=]]</div><h2>Installation</h2>
<div style="text-align:justify;">
<div style="text-align:justify;">
Die Erweiterung muss in ein eigenes Verzeichnis zB SGPack im Verzeichnis ''extensions'' abgelegt werden. Dann muss die Datei Localsettings.php um die Zeile<br />
Die Erweiterung muss in ein eigenes Verzeichnis z.B. SGPack im Verzeichnis ''extensions'' entpackt werden. Dann muss die Datei Localsettings.php um die Zeile
 
<code>require_once("$IP/extensions/SGPack/SGPack.php");</code><br />
<code>require_once("$IP/extensions/SGPack/SGPack.php");</code>


ergänzt werden. Standardmäßig sind nach der Installation alle Erweiterungen, außer SGHTML und AddWhosOnline, aktiviert. Um einzelne Erweiterungen auszuschließen muss '''nach''' der <code>require_once</code> Anweisung der entsprechende Parameter auf <code>false</code> gesetzt werden.<br />Die neue Version unterstützt nun vollständig das MediaWiki Messagesystem. Alle Texte sind in der Datei SGPack.i18n.php definiert, momentan in Deutsch und Englisch und daher auch in den [[Spezial:MediaWiki-Systemnachrichten|MediaWiki-Systemnachrichten]] zu finden. ''Die Bezeichnung der einzelnen Texte bitte der Datei SGPack.i18n.php entnehmen.''
ergänzt werden. Standardmäßig sind nach der Installation alle Erweiterungen, außer SGHTML und AddWhosOnline, aktiviert. Um einzelne Erweiterungen auszuschließen muss '''nach''' der <code>require_once</code> Anweisung der entsprechende Parameter auf <code>false</code> gesetzt werden.<br />Die neue Version unterstützt nun vollständig das MediaWiki Messagesystem. Alle Texte sind in der Datei SGPack.i18n.php definiert, momentan in Deutsch und Englisch und daher auch in den [[Spezial:MediaWiki-Systemnachrichten|MediaWiki-Systemnachrichten]] zu finden. ''Die Bezeichnung der einzelnen Texte bitte der Datei SGPack.i18n.php entnehmen.''


===Parameter===
===Parameter===
{| class="wikitable"
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%;"
! Parameter !! Default !! Bedeutung
! Parameter !! Default !! Bedeutung
|-
|-
| $wgSgpBlockSpammer || true || Aktivieren bzw. deaktivieren der Erweiterung BlockSpammer
| $wgSgpBlockSpammer || true || Aktivieren bzw. deaktivieren der Erweiterung BlockSpammer
|-
| $wgBlockSpammerPatterns || array('/http/i') || Array der Regexs die für IP-Benutzer nicht erlaubt sind. Vorgabe: Externe Links
|-
|-
| $wgBlockSpammerStayEdit || false || Gibt an ob nach einer Spam Erkennung der Editor wieder erscheint oder dieser geschlossen wird und damit die Eingabe gelöscht wird.
| $wgBlockSpammerStayEdit || false || Gibt an ob nach einer Spam Erkennung der Editor wieder erscheint oder dieser geschlossen wird und damit die Eingabe gelöscht wird.
Zeile 41: Zeile 39:
| $wgSgpSGHTML || false || Aktivieren bzw. deaktivieren der Erweiterung [[#SGHtml|SGHTML]]
| $wgSgpSGHTML || false || Aktivieren bzw. deaktivieren der Erweiterung [[#SGHtml|SGHTML]]
|-
|-
| $wgSGHTMLImageTop || || Pfad und Name des Bildes für den Sprung nach oben Button zB <code>$wgScriptPath.'/skins/common/images/16x16/blue_up.gif'</code>
| $wgSGHTMLImageTop || || Pfad und Name des Bildes für den Sprung nach oben Button z.B. <code>$wgScriptPath.'/skins/common/images/16x16/blue_up.gif'</code>
|-
|-
| $wgSGHTMLImageEdit || || Pfad und Name des Bildes für den Bearbeiten-Button zB <code>$wgScriptPath.'/skins/common/images/16x16/edit.png'</code>
| $wgSGHTMLImageEdit || || Pfad und Name des Bildes für den Bearbeiten-Button z.B. <code>$wgScriptPath.'/skins/common/images/16x16/edit.png'</code>
|-
|-
| $wgSgpAddWhosOnline || false || Aktivieren bzw. deaktivieren der Erweiterung [[#AddWhosOnline|AddWhosOnline]]
| $wgSgpAddWhosOnline || false || Aktivieren bzw. deaktivieren der Erweiterung [[#AddWhosOnline|AddWhosOnline]]
|-
| $wgSgpVideoPlayer || true || Aktivieren bzw. deaktivieren der Erweiterung [[#VideoPlayer|VideoPlayer]]
|-
| $wgSgpVideoPlayerCacheOff || false || Angabe ob der MW-Cache für Video Seiten deaktiviert werden soll
|-
| $wgSgpVideoPlayerEngine || "jwplayer" || Erlaubt die Auswahl des Videoplayers
|}
|}
</div>
</div>
Zeile 53: Zeile 57:
<div style="float: right;">[[Datei:Green_copyright_shiny.svg|80px|verweis=]]</div><h2>Copyright</h2>
<div style="float: right;">[[Datei:Green_copyright_shiny.svg|80px|verweis=]]</div><h2>Copyright</h2>
<div style="text-align:justify;">
<div style="text-align:justify;">
Die Erweiterung unterliegt der GPL (Version 2). Das bedeutet der Einsatz in anderen MediaWikis ist erlaubt, solange der Hinweis auf den Autor und die GPL erhalten bleibt. Dazu genügt, in diesem Falle, bereits der von der Erweiterung selbst erzeugte Link auf der System-Seite [[Spezial:Version]]. Natürlich kann die Erweiterung auch in anderen Systemen benutzt werden, unter Beachtung der GPL.  
Die Erweiterung unterliegt der GPL (Version 2). Das bedeutet der Einsatz in anderen MediaWikis ist erlaubt, solange der Hinweis auf den Autor und die GPL erhalten bleibt. Dazu genügt, in diesem Falle, bereits der von der Erweiterung selbst erzeugte Link auf der System-Seite [[Spezial:Version]]. Natürlich kann die Erweiterung auch in anderen Systemen benutzt werden, unter Beachtung der GPL.


Über einen kleinen Hinweis (auf der [[Benutzer Diskussion:Rene/SGPack|Diskussionsseite]]) in welchem Wiki die Erweiterung eingesetzt wird würde ich mich freuen, ist aber keine Pflicht.  
Über einen kleinen Hinweis (auf der [[Benutzer Diskussion:Rene/SGPack|Diskussionsseite]]) in welchem Wiki die Erweiterung eingesetzt wird würde ich mich freuen, ist aber keine Pflicht.
</div>
</div>
</div>
</div>
<div style="margin-bottom:10px; margin-right: 270px; padding:0.5em; border:1px solid #CDCDC1; background:#FEFFE0;">
<div style="margin-bottom:10px; margin-right: 270px; padding:0.5em; border:1px solid #CDCDC1; background:#FEFFE0;">
<div style="float: right;">[[Datei:Ark-icon.svg|80px|verweis=]]</div><h2>Download - Aktuell: V 1.2.96</h2>
<div style="float: right;">[[Datei:Ark-icon.svg|80px|verweis=]]</div><h2>Download - Aktuell: V 1.5.01</h2>
<div style="text-align:justify;">
<div style="text-align:justify;">
[[Datei:Bullet go.png]]'''[http://www.stargate-wiki.de/download/SGPack.zip SGPack.zip]'''<br />
''Achtung! BlockSpammer enthält einen Fehler. Dieser kann wie folgt behoben werden: [[Benutzer_Diskussion:Rene/SGPack#Fehler_in_BlockSpammer_-_HotFix|Fehler in BlockSpammer]]''
----
;Version 1.2.97
[[Datei:Bullet go.png]]'''[http://www.stargate-wiki.de/download/SGPack.txt SGPack.php]'''<br />
[[Datei:Bullet go.png]]'''[http://www.stargate-wiki.de/download/SGPack.txt SGPack.php]'''<br />
[[Datei:Bullet go.png]]'''[http://www.stargate-wiki.de/download/SGPack.i18n.txt SGPack.i18n.php]'''<br />
[[Datei:Bullet go.png]]'''[http://www.stargate-wiki.de/download/SGPack.i18n.txt SGPack.i18n.php]'''<br />
Zeile 66: Zeile 74:
</div>
</div>
</div>
</div>
'''Die Version 1.5.00 ist gerade in Arbeit. Sie wird ab ca. 10.1. zum Download bereit stehen. Die Beschreibung auf dieser Seite ist bereits größtenteils an die neue Version angepasst'''


== Veränderungen seit Version 1.2.94 ==
== Veränderungen seit Version 1.2.94 ==
Zeile 73: Zeile 79:
|TITEL =Versionsgeschichte
|TITEL =Versionsgeschichte
|INHALT =
|INHALT =
* 1.2.95: Sonderzeichenfehler in DropDownInsert behoben - Funktion PHP utf8_decode wird benutzt.
* '''1.2.95:''' Sonderzeichenfehler in DropDownInsert behoben - Funktion PHP utf8_decode wird benutzt.
* 1.2.96: Funktionsaufruf wfLoadExtensionMessage entfernt - Wird seit 1.16 nicht mehr benötigt, wird seit 1.21 nicht mehr unterstützt.  
* '''1.2.96:''' Funktionsaufruf wfLoadExtensionMessage entfernt - Wird seit 1.16 nicht mehr benötigt, seit 1.21 nicht mehr unterstützt.
:Fehler in NewArticle - Artikelinhalt mit fetchContent() auslesen statt aus Artikel-Objekt.
:Fehler in NewArticle - Artikelinhalt mit fetchContent() auslesen statt aus Artikel-Objekt.
:Anpassung der HTML-Erweiterung an die neue Vector-Seiten
:Anpassung der HTML-Erweiterung an die neue Vector-Seiten
:Funktion addKeywords wird in MW 1.22 durch addMeta ersetzt
:Funktion addKeywords wird in MW 1.22 durch addMeta ersetzt
:userinfo: Fehler abfangen wenn HTTP_USER_AGENT nicht gesetzt.
:userinfo: Fehler abfangen wenn HTTP_USER_AGENT nicht gesetzt.
:#rekursiv: Nicht ersetzte Ausdrücke werden jetzt immer in Klammern zurückgegeben. Zusätzliche Parameter werden richtig weitergegeben.
:<nowiki>#rekursiv</nowiki>: Nicht ersetzte Ausdrücke werden jetzt immer in Klammern zurückgegeben. Zusätzliche Parameter werden richtig weitergegeben.
* 1.5.00 (in Arbeit): Aufteilung des Pack in einige zusätzliche Dateien (Anpassung an MW Vorgaben):
* '''1.5.00:''' Aufteilung des Pack in einige zusätzliche Dateien (Anpassung an MW Vorgaben):
:SGPack.php: Die Einstellungen und Einbindung in MW
:SGPack.php: Die Einstellungen und Einbindung in MW
:SGPack_body.php: Die eigentlichen Funktionen (Klassen).
:SGPack_body.php: Die eigentlichen Funktionen (Klassen).
Zeile 89: Zeile 95:
:SGHTML: Die Vorgabe für die Metakeywords ist jetzt leer. Vermeidet falsche Keywords bei nichts Stargate Wikis.
:SGHTML: Die Vorgabe für die Metakeywords ist jetzt leer. Vermeidet falsche Keywords bei nichts Stargate Wikis.
:Neue Erweiterung: VideoPlayer
:Neue Erweiterung: VideoPlayer
* '''1.5.01:''' <code><nowiki>#recursiv</nowiki></code>: Fehler das nicht geklammerte Einzelparameter nicht ersetzt werden behoben.
}}
}}


== BlockSpammer ==
== BlockSpammer ==
BlockSpammer ist eine Erweiterung die verhindert, dass unangemeldete Benutzer (IPs) unerwünschte Ausdrücke in den Artikeltext oder die Zusammenfassung eintragen.  
BlockSpammer ist eine Erweiterung, die verhindert, dass unangemeldete Benutzer (IPs) unerwünschte Ausdrücke in den Artikeltext oder die Zusammenfassung eintragen.


Die Erweiterung prüft nur Änderungen von nicht angemeldeten Benutzern. Wenn diese einen verbotenen Eintrag machen, wird die Übername der Änderungen verweigert. In der Standardinstallation, wenn keine anderen Suchausdrücke in <code>$wgBlockSpammerPatterns</code> (hat Vorrang) oder der Systemnachricht <code>blockspammer-regex</code> (Komma getrennte Liste) definiert werden, prüft die Erweiterung nur auf externe Links. In der Standardinstallation wird <code>blockspammer-regex</code> benutzt. Eine größere Sicherheit bietet allerdings die Definition des Ausdrucks per PHP-Parameter, da der Zugriff darauf aus dem MediaWiki-System nicht möglich ist.
Die Erweiterung prüft nur Änderungen von nicht angemeldeten Benutzern. Wenn diese einen verbotenen Eintrag machen, wird die Übername der Änderungen verweigert. Die Ausdrücke werden anhand von Regex Anweisungen ermittelt. Die Definition der Anweisungen erfolgt in der Systemnachricht <code>blockspammer-regex</code> (Komma getrennte Liste) [[Mediawiki:blockspammer-regex|Beispiel]].


Wird ein Spammausdruck gefunden so wird das speichern des Artikels verhindert und der Benutzer auf den Fehler hingewiesen. Die Ausgabe kann über die Systemnachrichten <code>spamprotectiontitle, spamprotectiontext, spamprotectionmatch, blockspammer-stayedit</code> angepasst werden.
Wird ein Spammausdruck gefunden, so wird das Speichern des Artikels verhindert und der Benutzer auf den Fehler hingewiesen. Die Meldungen können über die Systemnachrichten <code>spamprotectiontitle, spamprotectiontext, spamprotectionmatch, blockspammer-stayedit</code> angepasst werden.


Ist der Parameter <code>$wgBlockSpammerStayEdit</code> auf <code>true</code> gesetzt so bleibt der Editor aktiv, inklusive der bemängelten Eingaben. Ist der Wert des Parameters dagegen <code>false</code> so wird die Eingabe verworfen und der Editor geschlossen.
;LocalSettings-Parameter
* <code>$wgBlockSpammerStayEdit</code>
Ist dieser Parameter auf <code>true</code> (Vorgabe) gesetzt so bleibt der Editor aktiv, inklusive der bemängelten Eingaben. Ist der Wert des Parameters dagegen <code>false</code> so wird die Eingabe verworfen und der Editor geschlossen.


== NewArticle ==
== NewArticle ==
Zeile 104: Zeile 113:


;Technik:
;Technik:
NewArticle ist eine MediaWiki-Erweiterung, die sich an den Hook ''AlternateEdit'' anhängt. Dabei wird bei jedem Aufruf des Editors geprüft, ob es sich um einen neuen Artikel handelt. Ist dies der Fall, so wird geprüft, ob es zum Namensraum, in dem der neue Artikel erstellt werden soll, eine Steuerdatei ''MediaWiki:NewArticle-<NS>'' gibt. <NS> steht dabei für die Nummer des Namensraums. In dieser Datei kann neben einem Einleitungstext auch eine Liste an möglichen Vorlagen definiert werden. Das Einfügen einer gewählten Vorlage erfolgt dann über eine Javascriptfunktion.<br />
NewArticle ist eine MediaWiki-Erweiterung, die sich an den Hook ''AlternateEdit'' anhängt. Dabei wird bei jedem Aufruf des Editors geprüft, ob es sich um einen neuen Artikel handelt. Ist dies der Fall, so wird geprüft, ob es zum Namensraum, in dem der neue Artikel erstellt werden soll, eine Steuerdatei ''MediaWiki:NewArticle-<NS>'' gibt. <NS> steht dabei für die Nummer des Namensraums. In dieser Datei kann neben einem Einleitungstext auch eine Liste an möglichen Vorlagen definiert werden. Das Einfügen einer gewählten Vorlage erfolgt dann über eine JavaScript-Funktion.<br />
''Hinweis:'' Es wird geprüft ob es sich um einen neuen Artikel handelt, d.h. ein bereits gespeicherter Artikel ohne Inhalt wird nicht als neu angesehen.
''Hinweis:'' Es wird geprüft ob es sich um einen neuen Artikel handelt, d.h. ein bereits gespeicherter Artikel ohne Inhalt wird nicht als neu angesehen.


;<nowiki>MediaWiki:NewArticle-<NS></nowiki>:
;<nowiki>MediaWiki:NewArticle-<NS></nowiki>:
In der Steuerdatei kann ein Text definiert werden, der als Einleitung über dem neuen Artikel angezeigt wird. Der Platzhalter <NS> wird dabei durch die Nummer des Namensraumes ersetzt, für den die Steuerdatei gültig ist. Der Text kann die normale Mediawiki-Syntax benutzen. Das bedeutet, dass zB auch Vorlagen eingebunden werden können. Zur Erstellung der Auswahlliste der möglichen Vorlagen werden diese nach dem folgenden Schema definiert:
In der Steuerdatei kann ein Text definiert werden, der als Einleitung über dem neuen Artikel angezeigt wird. Der Platzhalter <NS> wird dabei durch die Nummer des Namensraumes ersetzt, für den die Steuerdatei gültig ist. Der Text kann die normale Mediawiki-Syntax benutzen. Das bedeutet, dass z.B. auch Vorlagen eingebunden werden können. Zur Erstellung der Auswahlliste der möglichen Vorlagen werden diese nach dem folgenden Schema definiert:


  [[[ Einleitung , Vorlagenseite|Beschreibung , Vorlagenseite|Beschreibung , ...]]]
[[[ Einleitung , Vorlagenseite|Beschreibung , Vorlagenseite|Beschreibung , ...]]]
* Einleitung: Der hier angegebene Text erscheint in der Auswahlliste als Einleitung.
* Einleitung: Der hier angegebene Text erscheint in der Auswahlliste als Einleitung.
* Vorlagenseite: Der Seitenname der Vorlage ohne den Namensraum, also nicht ''Vorlage:Seite'' sondern nur ''Seite''.
* Vorlagenseite: Der Seitenname der Vorlage ohne den Namensraum, also nicht ''Vorlage:Seite'' sondern nur ''Seite''.
Zeile 119: Zeile 128:
Wird nur eine Vorlage angegeben, besteht die Möglichkeit statt einer Liste einen Button zu erzeugen. In diesem Falle darf nur keine Einleitung angegeben werden.
Wird nur eine Vorlage angegeben, besteht die Möglichkeit statt einer Liste einen Button zu erzeugen. In diesem Falle darf nur keine Einleitung angegeben werden.


  [[[ Vorlagenseite|Beschreibung ]]]
[[[ Vorlagenseite|Beschreibung ]]]


Innerhalb des Steuerdatei können beliebig viele Auswahllisten bzw. Buttons definiert werden.  
Innerhalb des Steuerdatei können beliebig viele Auswahllisten bzw. Buttons definiert werden.


Beispiel: [[[Bitte wählen,Benutzerseite|Benutzer (Vorlage:Benutzerseite)]]]
;Beispiel:
[[[Bitte wählen,Benutzerseite|Benutzer (Vorlage:Benutzerseite)]]]


== SGHtml ==
== SGHtml ==
Die Erweiterung verändert den HTML Code der von MediaWiki erzeugt wird. Dabei werden die folgenden Anpassungen gemacht:
Die Erweiterung verändert den HTML Code der von MediaWiki erzeugt wird. Dabei werden die folgenden Anpassungen gemacht:
* <s>Externe Seiten werden in einem eigenen Fenster aufgerufen</s>
* Alle Überschriften der Ebene 2 (==) erhalten am rechten Rand einen [[Bild:SGPack_Pfeil_hoch.png]] als Link auf den Seitenanfang.
* Alle Überschriften der Ebene 2 (==) erhalten am rechten Rand einen [[Bild:SGPack_Pfeil_hoch.png]] als Link auf den Seitenanfang.
* Bild [[Bild:SGPack_Edit.png]] statt Text '''Bearbeiten''' um einen Abschnitt zu bearbeiten
* Bild [[Bild:SGPack_Edit.png]] statt Text '''Bearbeiten''' um einen Abschnitt zu bearbeiten
* Zusätzliche Keywords in den Meta Abschnitt der HTML Seite einbauen. Die Wörter werden als Komma getrennte Liste in der [http://www.stargate-wiki.de/w/index.php?title=Spezial%3AMediaWiki-Systemnachrichten&prefix=sghtml-keywords&filter=all&lang=de&limit=250 MediaWiki Systemnachricht] <code>sghtml-keywords</code> gespeichert.
* Zusätzliche Keywords in den Meta Abschnitt der HTML Seite einbauen. Die Wörter werden als Komma getrennte Liste in der [http://www.stargate-wiki.de/w/index.php?title=Spezial%3AMediaWiki-Systemnachrichten&prefix=sghtml-keywords&filter=all&lang=de&limit=250 MediaWiki Systemnachricht] <code>sghtml-keywords</code> gespeichert.
 
;Programmcode
;Technik
Die Erweiterung benutzt die MediaWiki Hooks '''OutputPageBeforeHTML''' und '''BeforePageDisplay'''.
Die Erweiterung benutzt die MediaWiki-Hooks '''OutputPageBeforeHTML''' und '''BeforePageDisplay'''.


''Da diese Erweiterung speziell für Stargate Wiki geschrieben wurde ist sie in der Grundeinstellung deaktiviert.''
''Da diese Erweiterung speziell für Stargate Wiki geschrieben wurde ist sie in der Grundeinstellung deaktiviert.''


Mediawiki Version: Die Erweiterung manipuliert das Aussehen der HTML Seite vor der Ausgabe. Das funktioniert nur unter MW 1.24. Daher ist die Erweiterung in früheren Version deaktiviert. Das gilt nicht für die Meta-Keyworte, diese werden immer gesetzt.  
MediaWiki-Version: Die Erweiterung manipuliert das Aussehen der HTML Seite vor der Ausgabe. Das funktioniert nur unter MW 1.24. Daher ist die Erweiterung in früheren Version deaktiviert. Das gilt nicht für die Meta-Keyworte, diese werden immer gesetzt.


In der Grundeinstellung nutzt die Erweiterung zwei PublicDomain Bilder aus diesem [http://www.icojam.com/blog/?p=259 Iconset].
In der Grundeinstellung nutzt die Erweiterung zwei PublicDomain Bilder aus diesem [http://www.icojam.com/blog/?p=259 Iconset].
;LocalSettings-Parameter
* <code>$wgSGHTMLImageTop</code>, <code>$wgSGHTMLImageEdit</code>
Gibt den Pfad zu den angezeigten Bildern an. Diese sollten das Format 16x16 Pixel haben.


== PageProtection ==
== PageProtection ==
Diese Erweiterung ermöglicht die Kontrolle darüber wer Seiten bearbeiten darf.  
Diese Erweiterung ermöglicht die Kontrolle darüber wer Seiten bearbeiten darf.


Gedacht ist die Erweiterung hauptsächlich für die Namensräume Benutzer (NS_USER) und Benutzer Diskussion (NS_USER_TALK). In der Grundeinstellung dürfen die Seiten im Benutzernamensraum nur vom Besitzer bearbeitet werden. Die Seiten im Namensraum Benutzer Diskussion sind dagegen frei, können aber vom Besitzer gesperrt werden. Um den Schutz einer Seite einzustellen muss die Anweisung <nowiki><user></nowiki> benutzt werden.  
Gedacht ist die Erweiterung hauptsächlich für die Namensräume Benutzer (NS_USER) und Benutzer Diskussion (NS_USER_TALK). In der Grundeinstellung dürfen die Seiten im Benutzernamensraum nur vom Besitzer bearbeitet werden. Die Seiten im Namensraum Benutzer Diskussion sind dagegen frei, können aber vom Besitzer gesperrt werden. Um den Schutz einer Seite einzustellen muss die Anweisung <code><nowiki><user></nowiki></code> benutzt werden.


* <nowiki><user>XYZ,ABC</user></nowiki> gibt die Seite nur für die Benutzer XYZ und ABC frei.
* <code><nowiki><user>XYZ,ABC</user></nowiki></code> gibt die Seite nur für die Benutzer XYZ und ABC frei.
* <nowiki><user>*</user></nowiki> gibt die Seite für alle angemeldeten Benutzer frei.
* <code><nowiki><user>*</user></nowiki></code> gibt die Seite für alle angemeldeten Benutzer frei.
* <nowiki><user>**</user></nowiki> gibt die Seite für alle angemeldeten und anonymen Benutzer frei.  
* <code><nowiki><user>**</user></nowiki></code> gibt die Seite für alle angemeldeten und anonymen Benutzer frei.


Um Seiten im Namensraum Benutzer Diskussion zu schützen, muss zumindest eine <nowiki><user></nowiki> Anweisung auf der Seite definiert werden. Um die Seite nur für sich selbst frei zu geben, schreibt man <nowiki><user>Mein_Benutzername</user></nowiki> auf die Seite. Den selben Effekt erreicht man auch mit dem kurzen <nowiki><user>-</user></nowiki>. Wo auf der Seite die <nowiki><user></nowiki> Anweisung steht spielt keine Rolle. Es empfiehlt sich aber diese gleich an den Anfang der Seite zu schreiben.
Um Seiten im Namensraum Benutzer Diskussion zu schützen, muss zumindest eine <code><nowiki><user></nowiki></code>-Anweisung auf der Seite definiert werden. Um die Seite nur für sich selbst frei zu geben, schreibt man <code><nowiki><user>Mein_Benutzername</user></nowiki></code> auf die Seite. Den selben Effekt erreicht man auch mit dem kurzen <code><nowiki><user>-</user></nowiki></code>. Wo auf der Seite die <code><nowiki><user></nowiki></code>-Anweisung steht spielt keine Rolle. Es empfiehlt sich aber, diese gleich an den Anfang der Seite zu setzen.


Der Besitzer einer Seite kann sich nicht selbst aussperren, das gleiche gilt für die Administratoren.
Der Besitzer einer Seite kann sich nicht selbst aussperren, das gleiche gilt für die Administratoren.


In anderen als den definierten Namensräumen hat die <nowiki><user></nowiki> Anweisung keine Wirkung und wird einfach ignoriert.
In anderen als den definierten Namensräumen hat die <code><nowiki><user></nowiki></code> Anweisung keine Wirkung und wird einfach ignoriert.
;Einstellungen
Es ist über die Parameter <code>$wgPageProtectBlockNamespaces</code> (Geschütze Namensräume) und <code>$wgPageProtectOpenNamespaces</code> (Frei Namensräume) möglich die Erweiterung auch für anderen Namensräume zu nutzen. Dabei ist zu beachten das der Schutz gegen Aussperren nur für den Benutzernamensraum funktioniert.


Über den Parameter <code>$wgPageProtectOwnerAlways</code> kann eingestellt werden ob ein Benutzer sich aus der eigenen Seite aussperren kann.
;LocalSettings-Parameter
 
* <code>$wgPageProtectBlockNamespaces</code>
Zur Sicherheit sollte es immer eine Gruppe, in der Regel die Gruppe der Administratoren, geben die auch auf geschützte Seiten zugreifen kann. Dies wird über die Gruppenzugriffsrechte <code>$wgGroupPermissions[Gruppe]['pageprotection']</code> geregelt. Als Vorgabe ist die Gruppe der Administratoren berechtigt auf geschützt Seiten zu zugreifen <code>$wgGroupPermissions['sysop']['pageprotection'] = true;</code>
: Definiert die geschützten Namensräume für die die Erweiterung aktiviert werden soll. Auf Seiten in diesen Namensräumen kann nur der Besitzer schreibend zugreifen.
* <code>$wgPageProtectOpenNamespaces</code>
: Definiert die freien Namensräume für die die Erweiterung aktiviert werden soll. Dabei ist zu beachten das der Schutz gegen Aussperren nur für den Benutzernamensraum funktioniert.
* <code>$wgPageProtectOwnerAlways</code>
: Über diesen Parameter kann eingestellt werden ob ein Benutzer sich aus der eigenen Seite aussperren kann. Die Vorgabe ist <code>true</code>, der Benutzer kann sich nicht selbst aussperren.
* <code>$wgGroupPermissions[Gruppe]['pageprotection']</code>
:Zur Sicherheit sollte es immer eine Gruppe, in der Regel die Gruppe der Administratoren, geben die auch auf geschützte Seiten zugreifen kann. Dies wird über die Gruppenzugriffsrechte <code>$wgGroupPermissions[Gruppe]['pageprotection']</code> geregelt. Als Vorgabe ist die Gruppe der Administratoren berechtigt auf geschützt Seiten zu zugreifen <code>$wgGroupPermissions['sysop']['pageprotection'] = true;</code>


== DropDownInsert ==
== DropDownInsert ==
Die Idee zu DropDownInsert basiert auf der bekannten [http://www.mediawiki.org/wiki/Extension:CharInsert CharInsert-Erweiterung]. DDInsert geht aber über die Möglichkeiten von CharInsert hinaus. Die Erweiterung stellt die folgenden Befehle bereit:  
Die Idee zu DropDownInsert basiert auf der bekannten [http://www.mediawiki.org/wiki/Extension:CharInsert CharInsert-Erweiterung]. DDInsert geht aber über die Möglichkeiten von CharInsert hinaus. Die Erweiterung stellt die folgenden Befehle bereit:
* <nowiki><ddselect titel="TITEL" size="SIZE" name="NAME">... ddvalue ...</ddselect></nowiki>
* <code><nowiki><ddselect titel="TITEL" size="SIZE" name="NAME">... ddvalue ...</ddselect></nowiki></code>
:Definiert eine Dropdown-Auswahl. Dabei bedeuten die Parameter
:Definiert eine Dropdown-Auswahl. Dabei bedeuten die Parameter
:* titel: Name Auswahl. Dieser Wert wird angezeigt wenn noch keine Auswahl erfolgt ist. Vorgabe ist '[ bitte wählen ]'.
:* <var>titel</var>: Name Auswahl. Dieser Wert wird angezeigt wenn noch keine Auswahl erfolgt ist. Vorgabe ist '[ bitte wählen ]'.
:* size: Angabe wie viele Zeilen angezeigt werden sollen. Vorgabe ist 1
:* <var>size</var>: Angabe wie viele Zeilen angezeigt werden sollen. Vorgabe ist 1
:* name: Der Name der Auswahl. Vorgabe ist „Ausgabe“
:* <var>name</var>: Der Name der Auswahl. Vorgabe ist „Ausgabe“
:Die einzelnen Zeilen werden durch ddvalue definiert.  
:Die einzelnen Zeilen werden durch ddvalue definiert.
* <nowiki><ddvalue show="SHOWTEXT" sample="SAMPLETEXT" picture="NAME">... WERT ...</ddvalue></nowiki>
* <code><nowiki><ddvalue show="SHOWTEXT" sample="SAMPLETEXT" picture="NAME">... WERT ...</ddvalue></nowiki></code>
:Jede ddvalue Definition entspricht einer Zeile in der DropDown-Auswahl. Dabei bedeuten die Parameter:
:Jede ddvalue Definition entspricht einer Zeile in der DropDown-Auswahl. Dabei bedeuten die Parameter:
:* show: Dieser Text wird in der Auswahl angezeigt. Die Vorgabe ist WERT
:* <var>show</var>: Dieser Text wird in der Auswahl angezeigt. Die Vorgabe ist WERT
:* sample: Der SAMPLETEXT wird beim einfügen als markierter Hinweis angegeben.
:* <var>sample</var>: Der SAMPLETEXT wird beim einfügen als markierter Hinweis angegeben.
:* picture: Wird ein Bild angegeben so wird dieses in der Liste angezeigt (als Hintergrund Bild)
:* <var>picture</var>: Wird ein Bild angegeben so wird dieses in der Liste angezeigt (als Hintergrund Bild)
:* WERT: Gibt an was bei der Auswahl in den aktuellen Text eingefügt werden soll. Mit einem + Zeichen kann man angeben wo der Cursor platziert werden soll.
:* WERT: Gibt an, was bei der Auswahl in den aktuellen Text eingefügt werden soll. Mit dem Pluszeichen <code>+</code> kann man zudem angeben, wo der Cursor platziert werden soll.
* <nowiki><ddbutton show="SHOWTEXT" sample="SAMPLETEXT" picture="NAME">... WERT ...</ddbutton></nowiki>
* <code><nowiki><ddbutton show="SHOWTEXT" sample="SAMPLETEXT" picture="NAME">... WERT ...</ddbutton></nowiki></code>
:Entspricht ddvalue, allerdings werden die Button ohne Auswahlliste, als einzelne Elemente, benutzt.
:Entspricht ddvalue, allerdings werden die Button ohne Auswahlliste, als einzelne Elemente, benutzt.


== JSButton ==
== JSButton ==
Mit JSButton kann man einen HTML-Button ([http://de.selfhtml.org/html/formulare/klickbuttons.htm#modern <button>]) erzeugen. Mit diesem Button kann man eine Javascript-Funktion aufrufen, welche in Stargate Wiki definiert sein muss.  
Mit JSButton kann man einen HTML-Button ([http://de.selfhtml.org/html/formulare/klickbuttons.htm#modern <button>]) erzeugen. Mit diesem Button kann man eine Javascript-Funktion aufrufen, welche in Stargate Wiki definiert sein muss.
<pre><nowiki><jsbutton id="" name="" value="" class="" style="" click="" mover="" mout="">BText</jsbutton></nowiki></pre>
<nowiki><jsbutton id="" name="" value="" class="" style="" click="" mover="" mout="">BText</jsbutton></nowiki>
* <var>id</var>: Id des Buttons
* <var>id</var>: Id des Buttons
* <var>name</var>: Name des Buttons
* <var>name</var>: Name des Buttons
Zeile 191: Zeile 208:
* <var>mout</var>: Javascript-Funktion für onmouseout
* <var>mout</var>: Javascript-Funktion für onmouseout
* <var>BText</var>: Beschriftung des Buttons
* <var>BText</var>: Beschriftung des Buttons
:Hinweis: Momentan wird Wiki-Syntax in BText nur Teilweise unterstützt. Variablen werden erst mit der neuen Mediawiki Version 1.16 ausgewertet. Um Grafiken einzubinden sollten diese selbst keinen Verweis enthalten und müssen daher mit dem Parameter <var>verweis=</var> definiert werden. Beispiel: '''<nowiki>[[Datei:Bild.jpg|verweis=]]</nowiki>'''. Wird dies nicht so gemacht funktioniert der Button zwar, erzeugt aber keinen gültigen HTML-Code.
:Hinweis: Momentan wird Wiki-Syntax in BText nur Teilweise unterstützt. Variablen werden erst mit der neuen Mediawiki Version 1.16 ausgewertet. Um Grafiken einzubinden sollten diese selbst keinen Verweis enthalten und müssen daher mit dem Parameter <var>verweis=</var> definiert werden. Beispiel: <code><nowiki>[[Datei:Bild.jpg|verweis=]]</nowiki></code>. Wird dies nicht so gemacht funktioniert der Button zwar, erzeugt aber keinen gültigen HTML-Code.


Die Definition der Javascript-Funktion(en) muss entweder in der Datei '''[[Mediawiki:Monobook.js|Mediawiki:<Skin>.js]]''' oder '''[[Benutzer:{{userinfo:name}}/monobook.js|Benutzer:<Name>/<Skin>.js]]''' erfolgen.
Die Definition der Javascript-Funktion(en) muss entweder in der Datei '''[[Mediawiki:Common.js|Mediawiki:<Skin>.js]]''' oder '''[[Benutzer:{{userinfo:name}}/common.js|Benutzer:<Name>/<Skin>.js]]''' erfolgen.


== CacheArray ==
== CacheArray ==
Zeile 202: Zeile 219:
|INHALT =
|INHALT =
* '''carray'''
* '''carray'''
:Der Befehl zum setzen, auslesen und löschen der Arrays
:Der Befehl zum Setzen, Auslesen und Löschen der Arrays
* '''keys'''
* '''keys'''
:Mehrere Index-Keys zu einem einzigen Verbinden
:Mehrere Index-Keys zu einem einzigen verbinden


==== carray ====
==== carray ====
  <pre><nowiki>{{carray:<Name_des_Array>|<Kommando>[''Parameter''…''Array-Werte'']}}</nowiki></pre>
<nowiki>{{carray:<Name_des_Array>|<Kommando>[''Parameter''…''Array-Werte'']}}</nowiki>
* '''Name_des_Array'''
* '''Name_des_Array'''
:Die Erweiterung ist in der Lage, beliebig viele Arrays zu verwalten. Zur Unterscheidung dient dabei der Array-Name.
:Die Erweiterung ist in der Lage, beliebig viele Arrays zu verwalten. Zur Unterscheidung dient dabei der Array-Name.
Zeile 214: Zeile 231:
* '''w''' oder '''write'''
* '''w''' oder '''write'''
:Das Kommando '''write''' füllt das Array mit den angegebenen Werten. Ist das Array bereits angelegt wird der Befehl ignoriert. Um ein Array erneut anzulegen muss es zuerst gelöscht werden, siehe Befehl '''delete'''.
:Das Kommando '''write''' füllt das Array mit den angegebenen Werten. Ist das Array bereits angelegt wird der Befehl ignoriert. Um ein Array erneut anzulegen muss es zuerst gelöscht werden, siehe Befehl '''delete'''.
:Die Definition der Array-Werte erfolgt analog zur <nowiki>{{#switch:}}</nowiki> Definition. Ein Beispiel:
:Die Definition der Array-Werte erfolgt analog zur <code><nowiki>{{#switch:}}</nowiki></code>-Definition. Ein Beispiel:
<pre><nowiki>{{carray:EpName|w
<pre><nowiki>{{carray:EpName|w
| #default = <span class="error">Episodencode {{K}} ist unbekannt</span>
| #default = <span class="error">Episodencode {{K}} ist unbekannt</span>
Zeile 224: Zeile 241:
}}</nowiki>
}}</nowiki>
</pre>
</pre>
:Das Array-Element '''#default''' wird immer dann ausgegeben, wenn die Anfrage nach einem nicht definierten Wert gestellt wird, siehe Befehl '''read'''. Der Parameter '''<nowiki>{{K}}</nowiki>''' im default-Wert wird durch den Index ersetzt.
:Das Array-Element <var>#default</var> wird immer dann ausgegeben, wenn die Anfrage nach einem nicht definierten Wert gestellt wird, siehe Befehl '''read'''. Der Parameter <var><nowiki>{{K}}</nowiki></var> im default-Wert wird durch den Index ersetzt.
* '''r''' oder '''read'''
* '''r''' oder '''read'''
:Mit dem Kommando '''read''' erfolgt die Abfrage des Arrays. Das folgende Beispiel  
:Mit dem Kommando '''read''' erfolgt die Abfrage des Arrays. Das folgende Beispiel
<pre><nowiki>{{carray:EpName|r|SGA_1x01}}</nowiki></pre>
<nowiki>{{carray:EpName|r|SGA_1x01}}</nowiki>
würde nach der oben angegebenen Definition den Wert
würde nach der oben angegebenen Definition den Wert
<pre>Aufbruch in eine neue Welt, Teil 1</pre>
Aufbruch in eine neue Welt, Teil 1
zurück liefern. Ist kein Wert definiert wird entweder nichts oder, wenn definiert, der Inhalt der Zeile '''#default''' ausgegeben.
zurück liefern. Ist kein Wert definiert wird entweder nichts oder, wenn definiert, der Inhalt der Zeile <var>#default</var> ausgegeben.
* '''rw''' oder '''readwrite'''
* '''rw''' oder '''readwrite'''
:Mit der Kombination der Kommandos '''read''' und '''write''' wird das Array zuerst gefüllt und dann die entsprechende Zelle ausgelesen. Der Aufruf muss daher lauten:
:Mit der Kombination der Kommandos '''read''' und '''write''' wird das Array zuerst gefüllt und dann die entsprechende Zelle ausgelesen. Der Aufruf muss daher lauten:
<pre><nowiki>{{carray:EpName|rw|SGA_1x01
<pre><nowiki>{{carray:EpName|rw|SGA_1x01
| #default = <span class="error">Episodencode ungültig</span>
| #default = <span class="error">Episodencode ungültig</span>
Zeile 243: Zeile 260:
* '''f''' oder '''file'''
* '''f''' oder '''file'''
:Das Kommando entspricht '''write''' und erzeugt ebenfalls ein Array. Der Unterschied ist, dass die Daten aus einer anderen Seite gelesen werden. Es wird vor dem Erzeugen geprüft, ob das Array schon vorhanden ist und nur wenn dies nicht der Fall ist wird die Datei geladen. ''Siehe auch [[#Hinweise zum Einsatz]].''
:Das Kommando entspricht '''write''' und erzeugt ebenfalls ein Array. Der Unterschied ist, dass die Daten aus einer anderen Seite gelesen werden. Es wird vor dem Erzeugen geprüft, ob das Array schon vorhanden ist und nur wenn dies nicht der Fall ist wird die Datei geladen. ''Siehe auch [[#Hinweise zum Einsatz]].''
<pre><nowiki>{{carray|EpName|f|Vorlage:EpName/Fill}}</nowiki></pre>
<nowiki>{{carray:EpName|f|Vorlage:EpName/Zuordnung}}</nowiki>
* '''fr''' oder '''fileread'''
* '''fr''' oder '''fileread'''
: Das Kommando ist eine Kombination aus '''file''' und '''read'''
: Das Kommando ist eine Kombination aus '''file''' und '''read'''
<pre><nowiki>{{carray|EpName|fr|Vorlage:EpName/Fill|SG1_1x10}}</nowiki></pre>
<nowiki>{{carray:EpName|fr|Vorlage:EpName/Zuordnung|SG1_1x10}}</nowiki>
* '''u''' oder '''used'''
* '''u''' oder '''used'''
:Um zu prüfen ob ein Array bereits angelegt ist, sollte das Kommando '''used''' benutzt werden. Ist das Array bereits vorhanden, liefert die Anfrage die Anzahl der definierten Array-Elemente, ansonsten wird nichts zurück geliefert.
:Um zu prüfen ob ein Array bereits angelegt ist, sollte das Kommando '''used''' benutzt werden. Ist das Array bereits vorhanden, liefert die Anfrage die Anzahl der definierten Array-Elemente, ansonsten wird nichts zurück geliefert.
<pre><nowiki>{{carray:EpName|u}}</nowiki></pre>
<nowiki>{{carray:EpName|u}}</nowiki>
* '''c''' oder '''count'''
* '''c''' oder '''count'''
:Das Kommando gibt die Anzahl der definierten Array-Elemente zurück. Ist das Array noch nicht definiert ist das Ergebnis 0.
:Das Kommando gibt die Anzahl der definierten Array-Elemente zurück. Ist das Array noch nicht definiert ist das Ergebnis 0.
<pre><nowiki>{{carray:EpName|c}}</nowiki></pre>
<nowiki>{{carray:EpName|c}}</nowiki>
* '''d''' oder '''delete'''
* '''d''' oder '''delete'''
:Mit dem Kommando '''delete''' wird das Array gelöscht. Dies ist immer dann nötig, wenn das Array neu geschrieben werden soll, da das Überschreiben nicht möglich ist.
:Mit dem Kommando '''delete''' wird das Array gelöscht. Dies ist immer dann nötig, wenn das Array neu geschrieben werden soll, da das Überschreiben nicht möglich ist.
<pre><nowiki>{{carray:EpName|d}}</nowiki></pre>
<nowiki>{{carray:EpName|d}}</nowiki>


==== keys ====
==== keys ====
  <pre><nowiki>{{keys:[<Mod>:]<Key>[|[<Mod>:]<Key>…]}}</nowiki></pre>
<nowiki>{{keys:[<Mod>:]<Key>[|[<Mod>:]<Key>…]}}</nowiki>
* '''Key'''
* '''Key'''
:Der Key ist entweder direkt ein Text oder eine Variable. Vor dem Key kann ein Modifierer (Mod) angegeben werden.
:Der Key ist entweder direkt ein Text oder eine Variable. Vor dem Key kann ein Modifierer (Mod) angegeben werden.
* '''Mod'''
* '''Mod'''
:Mit dem Modifier kann der Key verändert werden. Definiert sind die Modifier '''l''' zum umwandeln des Keys in Kleinbuchstaben und '''u''' zum umwandeln in Großbuchstaben.
:Mit dem Modifier kann der Key verändert werden. Definiert sind die Modifier '''l''' zum Umwandeln des Keys in Kleinbuchstaben und '''u''' zum Umwandeln in Großbuchstaben.
Das Kommando wandelt die Keys entsprechend der Modifier um, entfernt Leerzeichen und fügt zwischen den einzelnen Keys einen Unterstrich '''_''' ein. Das Ergebnis wird dann zurückgeliefert.
Das Kommando wandelt die Keys entsprechend der Modifier um, entfernt Leerzeichen und fügt zwischen den einzelnen Keys einen Unterstrich '''_''' ein. Das Ergebnis wird dann zurückgeliefert.
  <pre><nowiki>{{keys:u: sg1 | 1x01 }}</nowiki></pre>
<nowiki>{{keys:u: sg1 | 1x01 }}</nowiki>
Ergibt: {{keys:u: sg1| 1x01 }}
Ergibt: {{keys:u: sg1| 1x01 }}


'''Hinweis''' Damit nicht definierte Variablen als solche auch erkannt werden, müssen diese nach dem folgenden Muster eingesetzt werden: Nicht <nowiki>{{{1}}}</nowiki> sondern <nowiki>{{{1|}}}</nowiki>.
'''Hinweis''' Damit nicht definierte Variablen als solche auch erkannt werden, müssen diese nach dem folgenden Muster eingesetzt werden: Nicht <code><nowiki>{{{1}}}</nowiki></code> sondern <code><nowiki>{{{1|}}}</nowiki></code>.
}}
}}


Zeile 273: Zeile 290:
Die Erweiterung kann, richtig eingesetzt, den Aufbau von Seiten beschleunigen, die häufig eine Vorlage aufrufen, welche aus einer großen Anzahl an Werten einen Wert liefert. Dazu sollte eine eigene Seite angelegt werden, die nur das Array füllt. Auf der eigentlichen Vorlagenseite sollte mit dem Befehl '''used''' geprüft werden, ob das Array bereits gesetzt wurde. Wenn nicht, kann die "Full"-Vorlage aufgerufen werden. Sonst sollte immer nur das Array ausgelesen werden.
Die Erweiterung kann, richtig eingesetzt, den Aufbau von Seiten beschleunigen, die häufig eine Vorlage aufrufen, welche aus einer großen Anzahl an Werten einen Wert liefert. Dazu sollte eine eigene Seite angelegt werden, die nur das Array füllt. Auf der eigentlichen Vorlagenseite sollte mit dem Befehl '''used''' geprüft werden, ob das Array bereits gesetzt wurde. Wenn nicht, kann die "Full"-Vorlage aufgerufen werden. Sonst sollte immer nur das Array ausgelesen werden.


Durch diese Konstruktion erreicht man, dass die große, daher langsame, 'Füll'-Vorlage nur einmal abgearbeitet werden muss und alle weiteren Zugriffe auf das Cache-Array erfolgen.  
Durch diese Konstruktion erreicht man, dass die große, daher langsame, 'Füll'-Vorlage nur einmal abgearbeitet werden muss und alle weiteren Zugriffe auf das Cache-Array erfolgen.


Die entsprechende Anweisung sollte wie folgt aussehen, definiert in Vorlage:EpName
Die entsprechende Anweisung sollte wie folgt aussehen, definiert in [[Vorlage:EpName]]


<pre><nowiki>{{#if: {{carray:EpName|u}} || {{EpName/Fill}} }}{{carray:EpName|r|{{{1}}}}}</nowiki>
<nowiki>{{#if: {{carray:EpName|u}} || {{EpName/Zuordnung}} }}{{carray:EpName|r|{{{1}}}}}</nowiki>
</pre>


Die Vorlage EpName/Fill füllt das Array ''EpName'' mit Werten die dann von der Vorlage EpName ausgelesen wird.
Die Vorlage EpName/Zuordnung füllt das Array ''EpName'' mit Werten, die dann von der Vorlage EpName ausgelesen werden.


'''Wichtiger Hinweis''':
'''Wichtiger Hinweis''':
Die oben angegebene Vorgehensweise führt zu Problemen bei gesichteten Versionen. Wird diese Erweiterung benutzt, sollte alternativ der Befehl '''file''' bzw. '''fileread''' eingesetzt werden.
Die oben angegebene Vorgehensweise führt zu Problemen bei gesichteten Versionen. Wird diese Erweiterung benutzt, sollte alternativ der Befehl '''file''' bzw. '''fileread''' eingesetzt werden.


== Kleine Parser Erweiterungen ==
== Kleine Parser-Erweiterungen ==
{{Klappbox
{{Anker|#in}}{{Anker|in}}{{Klappbox|TITEL=#in|anfang}}
|TITEL = Erweiterungen anzeigen
|INHALT =
<br />
==== #in ====
Ermittelt ob Elemente in einer Menge enthalten sind. Je nach Suchmodus ist die Suche erfolgreich wenn alle oder mindestens ein Element gefunden wird. Sowohl das Trennzeichen der Elemente als auch die Rückgabe kann definiert werden.
Ermittelt ob Elemente in einer Menge enthalten sind. Je nach Suchmodus ist die Suche erfolgreich wenn alle oder mindestens ein Element gefunden wird. Sowohl das Trennzeichen der Elemente als auch die Rückgabe kann definiert werden.
<pre><nowiki>{{ #in: ELEMENT | LISTE | TRENNER | MODUS | RÜCKGABE }}</nowiki></pre>
<nowiki>{{ #in: ELEMENT | LISTE | TRENNER | MODUS | RÜCKGABE }}</nowiki>
* ELEMENT
* ELEMENT
: Eine Liste der zu suchenden Elemente. Getrennt werden die Elemente durch das TRENNER-Zeichen.
: Eine Liste der zu suchenden Elemente. Getrennt werden die Elemente durch das TRENNER-Zeichen.
Zeile 307: Zeile 319:


;Beispiele
;Beispiele
<pre><nowiki>{{ #in: b,c,d | a,b,c ||e}}</nowiki></pre>
<nowiki>{{ #in: b,c,d | a,b,c ||e}}</nowiki>
Die Suche (Modus==e) nach b,c,d in der Liste a,b,c liefert: '''{{ #in: b,c,d | a,b,c ||e}}'''
Die Suche (Modus==e) nach b,c,d in der Liste a,b,c liefert: '''{{ #in: b,c,d | a,b,c ||e}}'''
<pre><nowiki>{{ #in: b,d | a,b,c ||e|ja,nein}}</nowiki></pre>
<nowiki>{{ #in: b,d | a,b,c ||e|ja,nein}}</nowiki>
Die Suche (Modus==e) nach b,d in der Liste a,b,c liefert: '''{{ #in: b,d | a,b,c ||e|ja,nein}}'''
Die Suche (Modus==e) nach b,d in der Liste a,b,c liefert: '''{{ #in: b,d | a,b,c ||e|ja,nein}}'''
<pre><nowiki>{{ #in: b,d | a,b,c |||ja,nein}}</nowiki></pre>
<nowiki>{{ #in: b,d | a,b,c |||ja,nein}}</nowiki>
Die Suche nach b,d in der Liste a,b,c liefert: '''{{ #in: b,d | a,b,c |||ja,nein}}'''
Die Suche nach b,d in der Liste a,b,c liefert: '''{{ #in: b,d | a,b,c |||ja,nein}}'''
{{Klappbox|ende}}


==== trim ====
{{Anker|trim}}{{Klappbox|TITEL=trim|anfang}}
Entfernen von führenden oder nachfolgenden Leerzeichen.
Entfernen von führenden oder nachfolgenden Leerzeichen.
  <pre><nowiki>{{trim:PARAMETER}}}</nowiki></pre>
<nowiki>{{trim:PARAMETER}}}</nowiki>
* PARAMETER
* PARAMETER
:Der Parameter kann ein Text oder sinnvoller eine Variable sein.
:Der Parameter kann ein Text oder sinnvoller eine Variable sein.
Als Rückgabe erhält man den angegebenen Wert ohne führende oder nachfolgende Leerzeichen. Der Einsatz der Funktion ist bei der Übergabe des Arraykeys sinnvoll, da es vorkommen kann, dass der Wert einer Variablen ein führendes Leerzeichen enthält.
Als Rückgabe erhält man den angegebenen Wert ohne führende oder nachfolgende Leerzeichen. Der Einsatz der Funktion ist bei der Übergabe des Arraykeys sinnvoll, da es vorkommen kann, dass der Wert einer Variablen ein führendes Leerzeichen enthält.
{{Klappbox|ende}}


==== userinfo ====
{{Anker|userinfo}}{{Klappbox|TITEL=userinfo|anfang}}
Liefert einige Informationen zum aktuellen Benutzer.
Liefert einige Informationen zum aktuellen Benutzer.
  <pre><nowiki>{{userinfo:PARAMETER}}</nowiki></pre>
<nowiki>{{userinfo:PARAMETER}}</nowiki>
* PARAMETER - Auswahl der gewünschten Information. Folgende Werte sind erlaubt
* PARAMETER - Auswahl der gewünschten Information. Folgende Werte sind erlaubt
**'''name''' - Benutzername oder bei nicht angemeldeten Benutzern die IP-Adresse.
**'''name''' - Benutzername oder bei nicht angemeldeten Benutzern die IP-Adresse.
**'''id''' - Benutzernummer. Die id 0 steht für einen nicht angemeldeten Benutzer.  
**'''id''' - Benutzernummer. Die id 0 steht für einen nicht angemeldeten Benutzer.
**'''realname''' - Wirklicher Benutzername
**'''realname''' - Wirklicher Benutzername
**'''skin''' - Name des Skins
**'''skin''' - Name des Skins
**'''email [{{!}}<benutzer>]''' - Email-Adresse des aktuellen oder des angegebenen Benutzers  
**'''email [{{!}}<benutzer>]''' - Email-Adresse des aktuellen oder angegebenen Benutzers
**'''home [{{!}}<benutzer>]''' - Verweis auf die Benutzerseite des aktuellen oder des angegebenen Benutzers
**'''home [{{!}}<benutzer>]''' - Verweis auf die Benutzerseite des aktuellen oder angegebenen Benutzers
**'''talk [{{!}}<benutzer>]''' - Verweis auf die Diskussionsseite des Benutzers des aktuellen oder des angegebenen Benutzers
**'''talk [{{!}}<benutzer>]''' - Verweis auf die Diskussionsseite des Benutzers des aktuellen oder angegebenen Benutzers
**'''groups''' - Liefert eine Komma getrennte Liste aller Gruppen des Benutzers
**'''groups''' - Liefert eine Komma getrennte Liste aller Gruppen des Benutzers
**'''group{{!}}<gname>''' - Prüft ob der Benutzer der Gruppe <gname> angehört. Ist der Benutzer in der Gruppe wird der Gruppenname <gname> zurück gegeben sonst ist die Rückgabe leer.
**'''group{{!}}<gname>''' - Prüft ob der Benutzer der Gruppe <gname> angehört. Ist der Benutzer in der Gruppe wird der Gruppenname <gname> zurück gegeben sonst ist die Rückgabe leer.
**'''online{{!}}<name>''' - Prüft ob der Benutzer momentan online ist. Als Resultat liefert der Aufruf: ''online'' bzw. ''offline''.<br>'''Hinweis''' Diese Funktion setzt die Erweiterung [http://www.mediawiki.org/wiki/Extension:WhosOnline WhosOnline] voraus. Ist die Erweiterung nicht installiert, liefert der Aufruf ''unknown''.
**'''online{{!}}<name>''' - Prüft ob der Benutzer momentan online ist. Als Resultat liefert der Aufruf: ''online'' bzw. ''offline''.<br>'''Hinweis''' Diese Funktion setzt die Erweiterung [http://www.mediawiki.org/wiki/Extension:WhosOnline WhosOnline] voraus. Ist die Erweiterung nicht installiert, liefert der Aufruf ''unknown''.
**'''browser [{{!}}<kennung>]''' - Ermittelt die Browserkennung des Benutzers. Wird der Parameter angegeben prüft der Befehl ob der Parameter-Text in der Kennung enthalten ist. Ist dies der Fall wird der Parameter zurückgegeben sonst nichts. Wird vom Aufrufer keine Browserinfo geliefert, wird "undefined" zurückgegeben.<br>'''Beispiel''' <code><nowiki>{{userinfo:browser|MSIE 9}}</nowiki></code> liefert ''MSIE 9'' wenn der Internet Explorer in der Version 9 benutzt wird.
**'''browser [{{!}}<kennung>]''' - Ermittelt die Browserkennung des Benutzers. Wird der Parameter angegeben prüft der Befehl ob der Parameter-Text in der Kennung enthalten ist. Ist dies der Fall wird der Parameter zurückgegeben sonst nichts. Wird vom Aufrufer keine Browserinfo geliefert, wird "undefined" zurückgegeben.<br>'''Beispiel''' <code><nowiki>{{userinfo:browser|MSIE 9}}</nowiki></code> liefert ''MSIE 9'' wenn der Internet Explorer in der Version 9 benutzt wird.
==== #link ====
{{Klappbox|ende}}
Mit der Anweisung #link können HTML-Link Anweisungen in den Seitenkopf eingebaut werden. Eine Übersicht der Möglichkeiten findet man auf [http://de.selfhtml.org/html/kopfdaten/beziehungen.htm selfhtml].  
 
  <pre><nowiki>{{#link:ART|SEITE[|TITEL]}}</nowiki></pre>
{{Anker|#link}}{{Anker|link}}{{Klappbox|TITEL=#link|anfang}}
Mit der Anweisung #link können HTML-Link Anweisungen in den Seitenkopf eingebaut werden. Eine Übersicht der Möglichkeiten findet man auf [http://de.selfhtml.org/html/kopfdaten/beziehungen.htm selfhtml].
  <nowiki>{{#link:ART|SEITE[|TITEL]}}</nowiki>
* ART: Bezeichnung des Links
* ART: Bezeichnung des Links
* SEITE: Name der Seite
* SEITE: Name der Seite
Zeile 346: Zeile 362:
  <nowiki>{{#link:next|Die_Invasion,_Teil_4}}</nowiki>
  <nowiki>{{#link:next|Die_Invasion,_Teil_4}}</nowiki>
Durch diese Anweisung wird
Durch diese Anweisung wird
  <code><nowiki><link rel="next" href="http://www.stargate-wiki.de/wiki/Die_Invasion,_Teil_4" title="Die_Invasion,_Teil_4"/></nowiki></code>
  <nowiki><link rel="next" href="http://www.stargate-wiki.de/wiki/Die_Invasion,_Teil_4" title="Die_Invasion,_Teil_4"/></nowiki>
in den Seitenkopf eingebaut. Entsprechend kann man die vorhergehende Episode mit "prev" angeben.
in den Seitenkopf eingebaut. Entsprechend kann man die vorhergehende Episode mit "prev" angeben.


Es gibt einige Browser bzw. Browsererweiterungen ''z.B. für [https://addons.mozilla.org/en-US/firefox/addon/link-widgets/ Firefox]'' die diese Angaben auswerten. Außerdem können die Angaben von Maschinen, z.B. der Google-Suche, gelesen und ausgewertet werden.
Es gibt einige Browser bzw. Browsererweiterungen ''z.B. für [https://addons.mozilla.org/en-US/firefox/addon/link-widgets/ Firefox]'' die diese Angaben auswerten. Außerdem können die Angaben von Maschinen, z.B. der Google-Suche, gelesen und ausgewertet werden.


'''Achtung''' Es erfolgt keine Überprüfung des Parameters Art. Es sollten nur die gängigen Bezeichnungen benutzt werden. Diese findet man zB bei Selfhtml.
'''Achtung''' Es erfolgt keine Überprüfung des Parameters Art. Es sollten nur die gängigen Bezeichnungen benutzt werden. Diese findet man z.B. bei Selfhtml.
{{Klappbox|ende}}


==== #recursiv ====
{{Anker|#recursiv}}{{Anker|recursiv}}{{Klappbox|TITEL=#recursiv|anfang}}
Wandelt einen Ausdruck so um, dass eine Vorlage auch mehrfach aufgerufen wird, wenn dies nötig ist. Dazu müssen die Werte die an die Vorlage übergeben werden sollen in () geschrieben werden. Erkennt die Vorlage einen Wert nicht so wird der Wert in das Ergebnis kopiert. Geklammerte Ausdrücke in Verweisen, d.h. Ausdrücke in [[]], werden nicht beachtet.
Wandelt einen Ausdruck so um, dass eine Vorlage auch mehrfach aufgerufen wird, wenn dies nötig ist. Dazu müssen die Werte die an die Vorlage übergeben werden sollen in () geschrieben werden. Erkennt die Vorlage einen Wert nicht so wird der Wert in das Ergebnis kopiert. Geklammerte Ausdrücke in Verweisen, d.h. Ausdrücke in <code>[[]]</code>, werden nicht beachtet.
  <pre><nowiki>{{#recursiv:VORLAGE|TEXT|PARAMETER}}</nowiki></pre>
<nowiki>{{#recursiv:VORLAGE|TEXT|PARAMETER}}</nowiki>
* VORLAGE
* VORLAGE
:Name der eigentlichen Vorlage. An diese werden alle ermittelten Werte übergeben.
:Name der eigentlichen Vorlage. An diese werden alle ermittelten Werte übergeben.
* TEXT
* TEXT
:Einer oder mehrere Werte die an die Vorlage übergeben werden sollen. Handelt es sich um mehrere Werte so müssen dies in Klammern () geschrieben werden. Nicht beachtet werden Ausdrücke in [[]].  
:Einer oder mehrere Werte die an die Vorlage übergeben werden sollen. Handelt es sich um mehrere Werte so müssen dies in Klammern <code>()</code> geschrieben werden. Nicht beachtet werden Ausdrücke in <code>[[]]</code>.
* PARAMETER
* PARAMETER
:Dieser Parameter wird, falls vorhanden, an die Vorlage weitergegeben. Es ist auch möglich beliebig viele weitere Parameter an zu geben, jeweils durch {{!}} getrennt. Diese werden alle weitergegeben.
:Dieser Parameter wird, falls vorhanden, an die Vorlage weitergegeben. Es ist auch möglich beliebig viele weitere Parameter an zu geben, jeweils durch {{!}} getrennt. Diese werden alle weitergegeben.
Zeile 365: Zeile 382:


;Beispiel
;Beispiel
<pre><nowiki>{{#recursiv:Kürzel/Organisation|(sgc) (sga)}}</nowiki></pre>
<nowiki>{{#recursiv:Kürzel/Organisation|(sgc) (sga)}}</nowiki>
Ergibt: {{#recursiv:Kürzel/Organisation|(sgc) (sga)}}
Ergibt: {{#recursiv:Kürzel/Organisation|(sgc) (sga)}}


Dieser Aufruf entspricht dem folgenden
Dieser Aufruf entspricht dem folgenden
<pre><nowiki>{{Kürzel/Organisation:sg1}} {{Kürze/Organisation:sga}}</nowiki></pre>
<nowiki>{{Kürzel/Organisation|sgc}} {{Kürze/Organisation|sga}}</nowiki>
{{Klappbox|ende}}


==== #tocmod ====
{{Anker|#tocmod}}{{Anker|tocmod}}{{Klappbox|TITEL=#tocmod|anfang}}
<pre><nowiki>{{#tocmod:<Parameter>|<Default>}}</nowiki></pre>
<nowiki>{{#tocmod:<Parameter>|<Default>}}</nowiki>
Mit dieser Anweisung wird gesteuert ob und wie das Inhaltsverzeichnis angezeigt wird. Die Erweiterung entspricht den Original Wiki-Befehlen <nowiki>__TOC__</nowiki>, <nowiki>__NOTOC__</nowiki>, <nowiki>__FORCETOC__</nowiki> und ermöglich das Ein- bzw. Ausblenden des Inhaltsverzeichnisses. Die Ausgabe wird über die folgenden Parameter gesteuert. Sollen mehrere Parameter angegeben werden, müssen diese mit Komma getrennt angegeben werden. Wird der erste Parameter leer übergeben, so wird statt dessen der Defaultwert benutzt. Ist auch dieser nicht angegeben, wird als Parameter ''set'' benutzt.
Mit dieser Anweisung wird gesteuert ob und wie das Inhaltsverzeichnis angezeigt wird. Die Erweiterung entspricht den Original Wiki-Befehlen <code><nowiki>__TOC__</nowiki></code>, <code><nowiki>__NOTOC__</nowiki></code>, <code><nowiki>__FORCETOC__</nowiki></code> und ermöglich das Ein- bzw. Ausblenden des Inhaltsverzeichnisses. Die Ausgabe wird über die folgenden Parameter gesteuert. Sollen mehrere Parameter angegeben werden, müssen diese mit Komma getrennt angegeben werden. Wird der erste Parameter leer übergeben, so wird statt dessen der Defaultwert benutzt. Ist auch dieser nicht angegeben, wird als Parameter ''set'' benutzt.
* no
* no
:Kein Inhaltsverzeichnis, entspricht <nowiki>__NOTOC__</nowiki>
:Kein Inhaltsverzeichnis, entspricht <code><nowiki>__NOTOC__</nowiki></code>
* force
* force
:Erzwingt das Inhaltsverzeichnis, entspricht <nowiki>__FORCETOC__</nowiki>
:Erzwingt das Inhaltsverzeichnis, entspricht <code><nowiki>__FORCETOC__</nowiki></code>
* set
* set
:Setzt das Inhaltsverzeichnis an diese Stelle, entspricht <nowiki>__TOC__</nowiki>
:Setzt das Inhaltsverzeichnis an diese Stelle, entspricht <code><nowiki>__TOC__</nowiki></code>
* hide
* hide
:Das Inhaltsverzeichnis wird verdeckt ausgegeben, unabhängig von den Benutzereinstellungen.
:Das Inhaltsverzeichnis wird verdeckt ausgegeben, unabhängig von den Benutzereinstellungen.
Zeile 386: Zeile 404:


;Beispiel
;Beispiel
* <nowiki>{{#tocmod:force,hide}}</nowiki>
* <code><nowiki>{{#tocmod:force,hide}}</nowiki></code>
: Erzwingt das Inhaltsverzeichnis und verdeckt es.
: Erzwingt das Inhaltsverzeichnis und verdeckt es.
* <nowiki>{{#tocmod:{{{Register|}}}|set,hide}}</nowiki>
* <code><nowiki>{{#tocmod:{{{Register|}}}|set,hide}}</nowiki></code>
: Benutzt entweder den Wert der Variable oder wenn diese nicht belegt ist den angegebenen Defaultwert. ''Bei der Variable ist der Trenner {{!}} wichtig da nur so bei undefinierter Variable auch ein Leerstring übergeben wird.''
: Benutzt entweder den Wert der Variable oder wenn diese nicht belegt ist den angegebenen Defaultwert. ''Bei der Variable ist der Trenner {{!}} (also <code><nowiki>{{{Register|}}}</nowiki></code> statt <code><nowiki>{{{Register}}}</nowiki></code>) wichtig, da nur so bei undefinierter Variable auch ein Leerstring übergeben wird.''
}}
{{Klappbox|ende}}


== AddWhosOnline ==
== AddWhosOnline ==
Zeile 397: Zeile 415:
== IE9 Hack ==
== IE9 Hack ==
;Das Problem
;Das Problem
Die MediaWiki Javascript Funktion <code>insertTag</code> zeigt mit dem Internet Explorer 9 ein störendes Verhalten. Wird ein Text über die MediaWiki in den Editor eingefügt so springt der Bildschirm an den Anfang der Seite. Diese Funktion wird von den Modulen NewArticle und DDInsert in SGPack benutzt.
Die MediaWiki JavaScript-Funktion <code>insertTag</code> zeigt mit dem Internet Explorer 9 ein störendes Verhalten. Wird ein Text über die MediaWiki in den Editor eingefügt, so springt der Bildschirm an den Anfang der Seite. Diese Funktion wird von den Modulen NewArticle und DDInsert in SGPack benutzt.
;Die Lösung
;Die Lösung
Um dies zu umgehen speichert sich der IE9 Hack die Bildschirmposition vor dem Einfügen und setzt sie danach wieder zurück. Somit kann der Benutzer normal weiterarbeiten.  
Um dies zu umgehen, speichert sich der IE9 Hack die Bildschirmposition vor dem Einfügen und setzt sie danach wieder zurück. Somit kann der Benutzer normal weiterarbeiten.
;Probleme
;Probleme
Mit dem Internet Explorer kann es dadurch zu einem kurzen Flackern der Darstellung kommen, in anderen Browsern geschieht dies normalerweise nicht.
Mit dem Internet Explorer kann es dadurch zu einem kurzen Flackern der Darstellung kommen, in anderen Browsern geschieht dies normalerweise nicht.
;Hinweis
;Hinweis
Die betroffene Javascript Funktion wird auch an anderer Stelle, z.B. im Editor, durch die MediaWiki Software benutzt. An diesen Stellen hilft der IE9 Hack nicht, da er nicht eingebunden wird.
Die betroffene JavaScript-Funktion wird auch an anderer Stelle, z.B. im Editor, durch die MediaWiki Software benutzt. An diesen Stellen hilft der IE9 Hack nicht, da er nicht eingebunden wird.


== VideoPlayer ==
== VideoPlayer ==
VideoPlayer erlaubt das einbinden von externen Videoquellen in Mediawiki. Die Ausgabe der Videos erfolgt mit [http://www.jwplayer.com jwplayer]. Das Einbinden erfolgt durch folgende Parser Anweisung.
VideoPlayer erlaubt das einbinden von externen Videoquellen in Mediawiki. Die Ausgabe der Videos erfolgt mit [http://www.jwplayer.com jwplayer]. Das Einbinden erfolgt durch folgende Parser Anweisung.
 
<nowiki>{{#vplayer:video="VIDEO"}}</nowiki>
<nowiki>{{#vplayer:video="VIDEO"}}</nowiki>


Der einzige notwendige Parameter ist entweder <code>video</code> oder <code>playlist</code>. Ist keiner davon angegeben erfolgt eine Fehlermeldung. Text Parameter sollten mit " oder ' eingeschlossen angegeben werden.
Der einzige notwendige Parameter ist entweder <code>video</code> oder <code>playlist</code>. Ist keiner davon angegeben erfolgt eine Fehlermeldung. Text Parameter sollten mit " oder ' eingeschlossen angegeben werden.


* <code>video</code>
* <code>video</code>
: Angabe der Adresse des Videos. Es muss sich um eine vollständige Netzadresse handeln. Videos aus dem Wiki müssen also vorher umgewandelt werden. Dies kann durch die Mediawiki Funktion <nowiki>{{filepath:Datei}}</nowiki> erfolgen.  
: Angabe der Adresse des Videos. Es muss sich um eine vollständige Netzadresse handeln. Videos aus dem Wiki müssen also vorher umgewandelt werden. Dies kann durch die Mediawiki Funktion <nowiki>{{filepath:Datei}}</nowiki> erfolgen.
* <code>playlist</code>
* <code>playlist</code>
: Erlaubt die Angabe mehrerer Videos, welche nacheinander abgespielt werden. Rechts vom Video erscheint eine Liste aller Videos aus der eines gewählt werden kann. Die einzelnen Videos werden durch Komma getrennt. ''Da es Netzadressen mit Komma geben kann ist es notwendig die Adressen in " einzuschließen!''.
: Erlaubt die Angabe mehrerer Videos, welche nacheinander abgespielt werden. Rechts vom Video erscheint eine Liste aller Videos aus der eines gewählt werden kann. Die einzelnen Videos werden durch Komma getrennt. ''Da es Netzadressen mit Komma geben kann ist es notwendig die Adressen in " einzuschließen!''.
Zeile 419: Zeile 436:
;Zusätzliche Parameter
;Zusätzliche Parameter
* <code>width</code>, <code>height</code>
* <code>width</code>, <code>height</code>
: Breite und Höhe des Videos. Default: 480,270
: Breite und Höhe des Videos. Default: <code>480,270</code>
* <code>poster</code><sup>1</sup>
* <code>poster</code>{{Anmerkung|Diese Parameter enthalten bei einer Playliste Komma getrennte Listen der Werte für die einzelnen Videos.|name=Playlist1}}
: Erlaubt die Angabe eines Bildes aus dem Wiki das vor dem Start des Videos gezeigt wird. Die Angabe der Datei erfolgt direkt ohne <nowiki>[[Bild:...]]</nowiki>
: Erlaubt die Angabe eines Bildes aus dem Wiki das vor dem Start des Videos gezeigt wird. Die Angabe der Datei erfolgt direkt ohne <code><nowiki>[[Bild:...]]</nowiki></code>
:<nowiki>{{vplayer:video="VIDEO"|poster="SamPhoto.jpg"}}</nowiki>
:<code><nowiki>{{vplayer:video="VIDEO"|poster="SamPhoto.jpg"}}</nowiki></code>
* <code>title</code><sup>1</sup>
* <code>title</code>{{Anmerkung|name=Playlist1}}
: Titel des Videos. Wird im Playbutton oder auch in der Playliste angezeigt.
: Titel des Videos. Wird im Playbutton oder auch in der Playliste angezeigt.
* <code>description</code><sup>1</sup>
* <code>description</code>{{Anmerkung|name=Playlist1}}
: Beschreibung der Videos in der Playliste. Wird in der Titelbar angezeigt
: Beschreibung der Videos in der Playliste. Wird in der Titelbar angezeigt
* <code>autostart</code> ''Funktioniert nicht immer''
* <code>autostart</code> ''Funktioniert nicht immer''
Zeile 433: Zeile 450:
* <code>mute</code>
* <code>mute</code>
: Das Video wird ohne Ton abgespielt
: Das Video wird ohne Ton abgespielt
* <code>controls</code> ''Sollte nicht benutzt werden da der Player für den Benutzer so nicht zu steuern ist''
* <code>controls</code> ''Parameter ohne Funktion - Fehler im SGPack''
: Es werden keine Bedienelemente angezeigt. Eine Sterung des Players ist dann nur noch über die [http://support.jwplayer.com/customer/portal/articles/1439411-example-a-chromeless-player Player API] möglich!
: Es werden keine Bedienelemente angezeigt. Eine Sterung des Players ist dann nur noch über die [http://support.jwplayer.com/customer/portal/articles/1439411-example-a-chromeless-player Player API] möglich!
* <code>displaytitle</code>
* <code>displaytitle</code>
Zeile 442: Zeile 459:
: Erlaubt die Angabe einer CSS-Klasse, welche im DIV-Container des Videos gesetzt wird.
: Erlaubt die Angabe einer CSS-Klasse, welche im DIV-Container des Videos gesetzt wird.


* <code>listbar</code> - ''Nur in Verbindung mit <code>playliste</code> einsetzbar''
* <code>l.position</code>{{Anmerkung|Diese Parameter ist ohne Playliste ohne Funktion.|name=Playlist2}}
: Komma getrennte Angabe zur: ''Position'', ''Größe'', ''Art'' der Titelbar. Mögliche Werte
: Position der Titelbar. Mögliche Werte: right (Vorgabe), bottom, none
::''Position'': right (Vorgabe), bottom, none
* <code>l.size</code>{{Anmerkung|name=Playlist2}}
::''Größe'': Ein Wert kleiner als die Videobreite. Vorgabe: 180
: Größe der Titelbar. Vorgabe: 150
::''Art'': basic, extended (Vorgabe) - extended ist mit Vorschau und Beschreibung, Basic eine reine Textliste mit dem Titel
* <code>l.layout</code>{{Anmerkung|name=Playlist2}}
: Darstellung der Titelbar. Mögliche Werte: basic, extended (Vorgabe) - extended ist mit Vorschau und Beschreibung, Basic eine reine Textliste mit dem Titel
:;Anmerkungen
<references group="A" />


;Beispiele
* <code><nowiki>{{#vplayer:video="http://s3.amazonaws.com/sgu-assets/assets/Video/1243990124/604/sg11001-0194ws.flv"|width="250"|height="187"|poster="SamPhoto.jpg"}}</nowiki></code>
* <code><nowiki>{{#vplayer:playlist="https://www.youtube.com/watch?v=6xJl1dGdddw","https://www.youtube.com/watch?v=jfNjgOIoo-c"|title="Video 1","Video 2"|description="text text","hallo video"|width="300"|height="300"|l.position="bottom"|l.size=100|l.layout="basic"}}</nowiki></code>
* Weitere Beispiele findet man auf der Seite [[Benutzer:Rene/SGPack Test]].


<sup>1</sup> Diese Parameter enthalten bei einer Playliste Komma getrennte Listen der Werte für die einzelnen Videos.
;Hinweise
Die Ausgabe erfolgt in einem <code><nowiki><div></nowiki></code>-Bereich. Der Bereich kann mit der CSS-Klasse <code>video_player</code> verändert werden, die in allen Bereichen immer gesetzt ist. Als weitere Möglichkeit kann zu jedem Bereich eine eigene Klasse angegeben werden. Jeder Bereich hat einen eigene ID (<code>video_player_NR</code>, wobei NR die laufende Nummer des Players ist, in der Reihenfolge ihrer Angabe im Artikel).


;Beispiele
;LocalSettings-Parameter
*<nowiki>{{#vplayer:video="http://s3.amazonaws.com/sgu-assets/assets/Video/1243990124/604/sg11001-0194ws.flv"|width="250"|height="187"|poster="SamPhoto.jpg"}}</nowiki>
* <code>$wgSgpVideoPlayerCacheOff</code>
*<nowiki>{{#vplayer:playlist="https://www.youtube.com/watch?v=6xJl1dGdddw","https://www.youtube.com/watch?v=jfNjgOIoo-c"|title="Video 1","Video 2"|description="text text","hallo video"|width="300"|height="300"|listbar="bottom,100,basic"}}</nowiki>
:Wird der Parameter auf <code>true</code> gesetzt so wird der MW-Cache für die Seite mit Videoausgaben deaktiviert. In der Voreinstellung ist der Cache aktiv
* <code>$wgSgpVideoPlayerEngine</code>
:Ermöglicht die Auswahl eines Videoplayers. Momentan ist nur der jwplayer installiert.


;Hinweise
===Javascript Steuerung===
Die Ausgabe erfolgt in einem <nowiki><DIV></nowiki> Bereich. Der Bereich kann mit der CSS-Klasse "video_player" verändert werden. Diese ist in allen Bereichen immer gesetzt. Als weitere Möglichkeit kann zu jedem Bereich eine eigene Klasse angegeben werden. Jeder Bereich hat einen eigene ID. Die ID lautet "video_player_NR", wobei NR die laufende Nummer des Players ist, in der Reihenfolge ihrer Angabe im Artikel.
Der Player kann mit Hilfe von Javascript gesteuert werden. Eine Einführung findet man im jwplayer [http://support.jwplayer.com/customer/portal/articles/1439411-example-a-chromeless-player Portal]. Eine Liste der Funktionen in der [http://support.jwplayer.com/customer/portal/topics/564475-javascript-api/articles API Reference].


;Planung
Zur Ansteuerung eignen sich z.B. Javascript Button aus der SGPack Erweiterung. Die folgende Anweisung erzeugt einen Startknopf für das erste Video auf der Seite.
:Einige weitere Funktionen von jwplayer einbinden: Skin, Steuerung des Players durch [http://support.jwplayer.com/customer/portal/articles/1439411-example-a-chromeless-player Javascript]
<nowiki><jsbutton click="jwplayer('video_player_1').play();">Start Video 1</jsbutton></nowiki>
:jwplayer kann auch zur Audio Ausgabe benutzt werden, es ist die Frage ob dies sinnvoll ist

Aktuelle Version vom 18. März 2016, 19:53 Uhr

<user>*</user> SGPack ist eine Sammlung von Mediawiki-Erweiterungen die speziell für Stargate-Wiki programmiert wurden. Es ist zudem möglich die Erweiterungen einzeln zu benutzen. Die Vorgehensweise wird im Abschnitt Installation erklärt. Die Erweiterung benötigt MediaWiki in der Version 1.17 oder später. Die Erweiterung SGHtml benötigt die Version 1.24.

^Installation

Die Erweiterung muss in ein eigenes Verzeichnis z.B. SGPack im Verzeichnis extensions entpackt werden. Dann muss die Datei Localsettings.php um die Zeile

require_once("$IP/extensions/SGPack/SGPack.php");

ergänzt werden. Standardmäßig sind nach der Installation alle Erweiterungen, außer SGHTML und AddWhosOnline, aktiviert. Um einzelne Erweiterungen auszuschließen muss nach der require_once Anweisung der entsprechende Parameter auf false gesetzt werden.
Die neue Version unterstützt nun vollständig das MediaWiki Messagesystem. Alle Texte sind in der Datei SGPack.i18n.php definiert, momentan in Deutsch und Englisch und daher auch in den MediaWiki-Systemnachrichten zu finden. Die Bezeichnung der einzelnen Texte bitte der Datei SGPack.i18n.php entnehmen.

^Parameter[Bearbeiten]

Parameter Default Bedeutung
$wgSgpBlockSpammer true Aktivieren bzw. deaktivieren der Erweiterung BlockSpammer
$wgBlockSpammerStayEdit false Gibt an ob nach einer Spam Erkennung der Editor wieder erscheint oder dieser geschlossen wird und damit die Eingabe gelöscht wird.
$wgSgpPageProtection true Aktivieren bzw. deaktivieren der Erweiterung PageProtection
$wgPageProtectBlockNamespaces array(NS_USER) Geschütze Namensräume. In diesen darf nur der Besitzer selbst schreiben.
$wgPageProtectOpenNamespaces array(NS_USER_TALK) Freie Namensräume. In diesen ist das Schreiben für alle erlaubt.
$wgPageProtectOwnerAlways true Wenn true, kann der Besitzer in den Namensräumen USER und USER_TALK nicht ausgesperrt werden.
$wgSgpDDInsert true Aktivieren bzw. deaktivieren der Erweiterung DDInsert
$wgSgpUseIE9Hack true Aktivieren bzw. deaktivieren die Erweiterungen IE9 Hack
$wgSgpNewArticle true Aktivieren bzw. deaktivieren der Erweiterung NewArticle
$wgSgpParserAdds true Aktivieren bzw. deaktivieren der Erweiterung ParserAdds
$wgSgpCacheArray true Aktivieren bzw. deaktivieren der Erweiterung CacheArray
$wgSgpSGHTML false Aktivieren bzw. deaktivieren der Erweiterung SGHTML
$wgSGHTMLImageTop Pfad und Name des Bildes für den Sprung nach oben Button z.B. $wgScriptPath.'/skins/common/images/16x16/blue_up.gif'
$wgSGHTMLImageEdit Pfad und Name des Bildes für den Bearbeiten-Button z.B. $wgScriptPath.'/skins/common/images/16x16/edit.png'
$wgSgpAddWhosOnline false Aktivieren bzw. deaktivieren der Erweiterung AddWhosOnline
$wgSgpVideoPlayer true Aktivieren bzw. deaktivieren der Erweiterung VideoPlayer
$wgSgpVideoPlayerCacheOff false Angabe ob der MW-Cache für Video Seiten deaktiviert werden soll
$wgSgpVideoPlayerEngine "jwplayer" Erlaubt die Auswahl des Videoplayers

^Copyright

Die Erweiterung unterliegt der GPL (Version 2). Das bedeutet der Einsatz in anderen MediaWikis ist erlaubt, solange der Hinweis auf den Autor und die GPL erhalten bleibt. Dazu genügt, in diesem Falle, bereits der von der Erweiterung selbst erzeugte Link auf der System-Seite Spezial:Version. Natürlich kann die Erweiterung auch in anderen Systemen benutzt werden, unter Beachtung der GPL.

Über einen kleinen Hinweis (auf der Diskussionsseite) in welchem Wiki die Erweiterung eingesetzt wird würde ich mich freuen, ist aber keine Pflicht.

^Download - Aktuell: V 1.5.01

SGPack.zip
Achtung! BlockSpammer enthält einen Fehler. Dieser kann wie folgt behoben werden: Fehler in BlockSpammer


Version 1.2.97

SGPack.php
SGPack.i18n.php
Hinweis: Die Dateien werden jeweils mit der Endung .txt angezeigt bzw. heruntergeladen. Um sie zu benutzen müssen sie mit der Endung .php gespeichert werden

Veränderungen seit Version 1.2.94[Bearbeiten]

Versionsgeschichte
  • 1.2.95: Sonderzeichenfehler in DropDownInsert behoben - Funktion PHP utf8_decode wird benutzt.
  • 1.2.96: Funktionsaufruf wfLoadExtensionMessage entfernt - Wird seit 1.16 nicht mehr benötigt, seit 1.21 nicht mehr unterstützt.
Fehler in NewArticle - Artikelinhalt mit fetchContent() auslesen statt aus Artikel-Objekt.
Anpassung der HTML-Erweiterung an die neue Vector-Seiten
Funktion addKeywords wird in MW 1.22 durch addMeta ersetzt
userinfo: Fehler abfangen wenn HTTP_USER_AGENT nicht gesetzt.
#rekursiv: Nicht ersetzte Ausdrücke werden jetzt immer in Klammern zurückgegeben. Zusätzliche Parameter werden richtig weitergegeben.
  • 1.5.00: Aufteilung des Pack in einige zusätzliche Dateien (Anpassung an MW Vorgaben):
SGPack.php: Die Einstellungen und Einbindung in MW
SGPack_body.php: Die eigentlichen Funktionen (Klassen).
SGPack.js, SGPack.css: Javascript und CSS Funktionen und Definitionen.
Die Javascript Funktionen sind nun so weit möglich ausgelagert und werden im HTML Dokument nur noch aufgerufen und nicht mehr definiert.
Anpassung einiger Anweisungen an MW Standards. Unter anderem: Benutzung der Klasse WikiPage,
Default Bilder für SGHTML liegen jetzt im SGPack Verzeichnis, es können aber über die entsprechenden Variablen auch andere Bilder verwendet werden.
SGHTML: Die Vorgabe für die Metakeywords ist jetzt leer. Vermeidet falsche Keywords bei nichts Stargate Wikis.
Neue Erweiterung: VideoPlayer
  • 1.5.01: #recursiv: Fehler das nicht geklammerte Einzelparameter nicht ersetzt werden behoben.

^BlockSpammer[Bearbeiten]

BlockSpammer ist eine Erweiterung, die verhindert, dass unangemeldete Benutzer (IPs) unerwünschte Ausdrücke in den Artikeltext oder die Zusammenfassung eintragen.

Die Erweiterung prüft nur Änderungen von nicht angemeldeten Benutzern. Wenn diese einen verbotenen Eintrag machen, wird die Übername der Änderungen verweigert. Die Ausdrücke werden anhand von Regex Anweisungen ermittelt. Die Definition der Anweisungen erfolgt in der Systemnachricht blockspammer-regex (Komma getrennte Liste) Beispiel.

Wird ein Spammausdruck gefunden, so wird das Speichern des Artikels verhindert und der Benutzer auf den Fehler hingewiesen. Die Meldungen können über die Systemnachrichten spamprotectiontitle, spamprotectiontext, spamprotectionmatch, blockspammer-stayedit angepasst werden.

LocalSettings-Parameter
  • $wgBlockSpammerStayEdit

Ist dieser Parameter auf true (Vorgabe) gesetzt so bleibt der Editor aktiv, inklusive der bemängelten Eingaben. Ist der Wert des Parameters dagegen false so wird die Eingabe verworfen und der Editor geschlossen.

^NewArticle[Bearbeiten]

Die Erweiterung NewArticle erzeugt, immer wenn ein neuer Artikel angelegt wird, eine Auswahl an Vorlagen. Wird eine dieser Vorlagen ausgewählt so wird die Vorlage in das Editorfeld eingefügt. Sinn ist es, das Erstellen von Artikeln nach den Artikelvorlagen zu erleichtern.

Technik

NewArticle ist eine MediaWiki-Erweiterung, die sich an den Hook AlternateEdit anhängt. Dabei wird bei jedem Aufruf des Editors geprüft, ob es sich um einen neuen Artikel handelt. Ist dies der Fall, so wird geprüft, ob es zum Namensraum, in dem der neue Artikel erstellt werden soll, eine Steuerdatei MediaWiki:NewArticle-<NS> gibt. <NS> steht dabei für die Nummer des Namensraums. In dieser Datei kann neben einem Einleitungstext auch eine Liste an möglichen Vorlagen definiert werden. Das Einfügen einer gewählten Vorlage erfolgt dann über eine JavaScript-Funktion.
Hinweis: Es wird geprüft ob es sich um einen neuen Artikel handelt, d.h. ein bereits gespeicherter Artikel ohne Inhalt wird nicht als neu angesehen.

MediaWiki:NewArticle-<NS>

In der Steuerdatei kann ein Text definiert werden, der als Einleitung über dem neuen Artikel angezeigt wird. Der Platzhalter <NS> wird dabei durch die Nummer des Namensraumes ersetzt, für den die Steuerdatei gültig ist. Der Text kann die normale Mediawiki-Syntax benutzen. Das bedeutet, dass z.B. auch Vorlagen eingebunden werden können. Zur Erstellung der Auswahlliste der möglichen Vorlagen werden diese nach dem folgenden Schema definiert:

[[[ Einleitung , Vorlagenseite|Beschreibung , Vorlagenseite|Beschreibung , ...]]]
  • Einleitung: Der hier angegebene Text erscheint in der Auswahlliste als Einleitung.
  • Vorlagenseite: Der Seitenname der Vorlage ohne den Namensraum, also nicht Vorlage:Seite sondern nur Seite.
  • Beschreibung: Der Text der für diese Vorlage in der Liste angezeigt wird.

Es gibt keine Begrenzung für die Anzahl an Vorlagen die definiert werden können.

Wird nur eine Vorlage angegeben, besteht die Möglichkeit statt einer Liste einen Button zu erzeugen. In diesem Falle darf nur keine Einleitung angegeben werden.

[[[ Vorlagenseite|Beschreibung ]]]

Innerhalb des Steuerdatei können beliebig viele Auswahllisten bzw. Buttons definiert werden.

Beispiel
[[[Bitte wählen,Benutzerseite|Benutzer (Vorlage:Benutzerseite)]]]

^SGHtml[Bearbeiten]

Die Erweiterung verändert den HTML Code der von MediaWiki erzeugt wird. Dabei werden die folgenden Anpassungen gemacht:

  • Alle Überschriften der Ebene 2 (==) erhalten am rechten Rand einen als Link auf den Seitenanfang.
  • Bild statt Text Bearbeiten um einen Abschnitt zu bearbeiten
  • Zusätzliche Keywords in den Meta Abschnitt der HTML Seite einbauen. Die Wörter werden als Komma getrennte Liste in der MediaWiki Systemnachricht sghtml-keywords gespeichert.
Technik

Die Erweiterung benutzt die MediaWiki-Hooks OutputPageBeforeHTML und BeforePageDisplay.

Da diese Erweiterung speziell für Stargate Wiki geschrieben wurde ist sie in der Grundeinstellung deaktiviert.

MediaWiki-Version: Die Erweiterung manipuliert das Aussehen der HTML Seite vor der Ausgabe. Das funktioniert nur unter MW 1.24. Daher ist die Erweiterung in früheren Version deaktiviert. Das gilt nicht für die Meta-Keyworte, diese werden immer gesetzt.

In der Grundeinstellung nutzt die Erweiterung zwei PublicDomain Bilder aus diesem Iconset.

LocalSettings-Parameter
  • $wgSGHTMLImageTop, $wgSGHTMLImageEdit

Gibt den Pfad zu den angezeigten Bildern an. Diese sollten das Format 16x16 Pixel haben.

^PageProtection[Bearbeiten]

Diese Erweiterung ermöglicht die Kontrolle darüber wer Seiten bearbeiten darf.

Gedacht ist die Erweiterung hauptsächlich für die Namensräume Benutzer (NS_USER) und Benutzer Diskussion (NS_USER_TALK). In der Grundeinstellung dürfen die Seiten im Benutzernamensraum nur vom Besitzer bearbeitet werden. Die Seiten im Namensraum Benutzer Diskussion sind dagegen frei, können aber vom Besitzer gesperrt werden. Um den Schutz einer Seite einzustellen muss die Anweisung <user> benutzt werden.

  • <user>XYZ,ABC</user> gibt die Seite nur für die Benutzer XYZ und ABC frei.
  • <user>*</user> gibt die Seite für alle angemeldeten Benutzer frei.
  • <user>**</user> gibt die Seite für alle angemeldeten und anonymen Benutzer frei.

Um Seiten im Namensraum Benutzer Diskussion zu schützen, muss zumindest eine <user>-Anweisung auf der Seite definiert werden. Um die Seite nur für sich selbst frei zu geben, schreibt man <user>Mein_Benutzername</user> auf die Seite. Den selben Effekt erreicht man auch mit dem kurzen <user>-</user>. Wo auf der Seite die <user>-Anweisung steht spielt keine Rolle. Es empfiehlt sich aber, diese gleich an den Anfang der Seite zu setzen.

Der Besitzer einer Seite kann sich nicht selbst aussperren, das gleiche gilt für die Administratoren.

In anderen als den definierten Namensräumen hat die <user> Anweisung keine Wirkung und wird einfach ignoriert.

LocalSettings-Parameter
  • $wgPageProtectBlockNamespaces
Definiert die geschützten Namensräume für die die Erweiterung aktiviert werden soll. Auf Seiten in diesen Namensräumen kann nur der Besitzer schreibend zugreifen.
  • $wgPageProtectOpenNamespaces
Definiert die freien Namensräume für die die Erweiterung aktiviert werden soll. Dabei ist zu beachten das der Schutz gegen Aussperren nur für den Benutzernamensraum funktioniert.
  • $wgPageProtectOwnerAlways
Über diesen Parameter kann eingestellt werden ob ein Benutzer sich aus der eigenen Seite aussperren kann. Die Vorgabe ist true, der Benutzer kann sich nicht selbst aussperren.
  • $wgGroupPermissions[Gruppe]['pageprotection']
Zur Sicherheit sollte es immer eine Gruppe, in der Regel die Gruppe der Administratoren, geben die auch auf geschützte Seiten zugreifen kann. Dies wird über die Gruppenzugriffsrechte $wgGroupPermissions[Gruppe]['pageprotection'] geregelt. Als Vorgabe ist die Gruppe der Administratoren berechtigt auf geschützt Seiten zu zugreifen $wgGroupPermissions['sysop']['pageprotection'] = true;

^DropDownInsert[Bearbeiten]

Die Idee zu DropDownInsert basiert auf der bekannten CharInsert-Erweiterung. DDInsert geht aber über die Möglichkeiten von CharInsert hinaus. Die Erweiterung stellt die folgenden Befehle bereit:

  • <ddselect titel="TITEL" size="SIZE" name="NAME">... ddvalue ...</ddselect>
Definiert eine Dropdown-Auswahl. Dabei bedeuten die Parameter
  • titel: Name Auswahl. Dieser Wert wird angezeigt wenn noch keine Auswahl erfolgt ist. Vorgabe ist '[ bitte wählen ]'.
  • size: Angabe wie viele Zeilen angezeigt werden sollen. Vorgabe ist 1
  • name: Der Name der Auswahl. Vorgabe ist „Ausgabe“
Die einzelnen Zeilen werden durch ddvalue definiert.
  • <ddvalue show="SHOWTEXT" sample="SAMPLETEXT" picture="NAME">... WERT ...</ddvalue>
Jede ddvalue Definition entspricht einer Zeile in der DropDown-Auswahl. Dabei bedeuten die Parameter:
  • show: Dieser Text wird in der Auswahl angezeigt. Die Vorgabe ist WERT
  • sample: Der SAMPLETEXT wird beim einfügen als markierter Hinweis angegeben.
  • picture: Wird ein Bild angegeben so wird dieses in der Liste angezeigt (als Hintergrund Bild)
  • WERT: Gibt an, was bei der Auswahl in den aktuellen Text eingefügt werden soll. Mit dem Pluszeichen + kann man zudem angeben, wo der Cursor platziert werden soll.
  • <ddbutton show="SHOWTEXT" sample="SAMPLETEXT" picture="NAME">... WERT ...</ddbutton>
Entspricht ddvalue, allerdings werden die Button ohne Auswahlliste, als einzelne Elemente, benutzt.

^JSButton[Bearbeiten]

Mit JSButton kann man einen HTML-Button (<button>) erzeugen. Mit diesem Button kann man eine Javascript-Funktion aufrufen, welche in Stargate Wiki definiert sein muss.

<jsbutton id="" name="" value="" class="" style="" click="" mover="" mout="">BText</jsbutton>
  • id: Id des Buttons
  • name: Name des Buttons
  • value: Value des Buttons
  • class: Klasse des Buttons
  • style: Style Definition für den Button
  • click: Javascript-Funktion für onclick
  • mover: Javascript-Funktion für onmouseover
  • mout: Javascript-Funktion für onmouseout
  • BText: Beschriftung des Buttons
Hinweis: Momentan wird Wiki-Syntax in BText nur Teilweise unterstützt. Variablen werden erst mit der neuen Mediawiki Version 1.16 ausgewertet. Um Grafiken einzubinden sollten diese selbst keinen Verweis enthalten und müssen daher mit dem Parameter verweis= definiert werden. Beispiel: [[Datei:Bild.jpg|verweis=]]. Wird dies nicht so gemacht funktioniert der Button zwar, erzeugt aber keinen gültigen HTML-Code.

Die Definition der Javascript-Funktion(en) muss entweder in der Datei Mediawiki:<Skin>.js oder Benutzer:<Name>/<Skin>.js erfolgen.

^CacheArray[Bearbeiten]

Die Parser-Erweiterung CacheArray ermöglicht das Anlegen und Auslesen von Arrays. Das besondere dabei ist, dass diese Arrays nur einmal angelegt werden müssen und dann auch von anderen Seiten benutzt werden können. Hinweis: Natürlich bleibt das Array nicht erhalten, wenn die ursprünglich angefragte Seite an den Browser ausgegeben wurde. Es kann nur während des Seitenaufbaus von aufgerufenen Seiten bzw. Vorlagen benutzt werden.

Befehle
  • carray
Der Befehl zum Setzen, Auslesen und Löschen der Arrays
  • keys
Mehrere Index-Keys zu einem einzigen verbinden

^carray

{{carray:<Name_des_Array>|<Kommando>[''Parameter''…''Array-Werte'']}}
  • Name_des_Array
Die Erweiterung ist in der Lage, beliebig viele Arrays zu verwalten. Zur Unterscheidung dient dabei der Array-Name.
  • Kommando

Die Steuerung von carray erfolgt über die folgenden Kommandos.

  • w oder write
Das Kommando write füllt das Array mit den angegebenen Werten. Ist das Array bereits angelegt wird der Befehl ignoriert. Um ein Array erneut anzulegen muss es zuerst gelöscht werden, siehe Befehl delete.
Die Definition der Array-Werte erfolgt analog zur {{#switch:}}-Definition. Ein Beispiel:
{{carray:EpName|w
| #default = <span class="error">Episodencode {{K}} ist unbekannt</span>
| SGA_1x01/02 = Aufbruch in eine neue Welt
| SGA_1x01 = Aufbruch in eine neue Welt, Teil 1
| SGA_1x02 = Aufbruch in eine neue Welt, Teil 2
| SGA_1x03 = Dunkle Schatten
| SGA_1x04 = 38 Minuten
}}
Das Array-Element #default wird immer dann ausgegeben, wenn die Anfrage nach einem nicht definierten Wert gestellt wird, siehe Befehl read. Der Parameter {{K}} im default-Wert wird durch den Index ersetzt.
  • r oder read
Mit dem Kommando read erfolgt die Abfrage des Arrays. Das folgende Beispiel
{{carray:EpName|r|SGA_1x01}}

würde nach der oben angegebenen Definition den Wert

Aufbruch in eine neue Welt, Teil 1

zurück liefern. Ist kein Wert definiert wird entweder nichts oder, wenn definiert, der Inhalt der Zeile #default ausgegeben.

  • rw oder readwrite
Mit der Kombination der Kommandos read und write wird das Array zuerst gefüllt und dann die entsprechende Zelle ausgelesen. Der Aufruf muss daher lauten:
{{carray:EpName|rw|SGA_1x01
| #default = <span class="error">Episodencode ungültig</span>
| SGA_1x01/02 = Aufbruch in eine neue Welt
| SGA_1x01 = Aufbruch in eine neue Welt, Teil 1
| SGA_1x02 = Aufbruch in eine neue Welt, Teil 2
| SGA_1x03 = Dunkle Schatten
| SGA_1x04 = 38 Minuten
}}
  • f oder file
Das Kommando entspricht write und erzeugt ebenfalls ein Array. Der Unterschied ist, dass die Daten aus einer anderen Seite gelesen werden. Es wird vor dem Erzeugen geprüft, ob das Array schon vorhanden ist und nur wenn dies nicht der Fall ist wird die Datei geladen. Siehe auch #Hinweise zum Einsatz.
{{carray:EpName|f|Vorlage:EpName/Zuordnung}}
  • fr oder fileread
Das Kommando ist eine Kombination aus file und read
{{carray:EpName|fr|Vorlage:EpName/Zuordnung|SG1_1x10}}
  • u oder used
Um zu prüfen ob ein Array bereits angelegt ist, sollte das Kommando used benutzt werden. Ist das Array bereits vorhanden, liefert die Anfrage die Anzahl der definierten Array-Elemente, ansonsten wird nichts zurück geliefert.
{{carray:EpName|u}}
  • c oder count
Das Kommando gibt die Anzahl der definierten Array-Elemente zurück. Ist das Array noch nicht definiert ist das Ergebnis 0.
{{carray:EpName|c}}
  • d oder delete
Mit dem Kommando delete wird das Array gelöscht. Dies ist immer dann nötig, wenn das Array neu geschrieben werden soll, da das Überschreiben nicht möglich ist.
{{carray:EpName|d}}

^keys

{{keys:[<Mod>:]<Key>[|[<Mod>:]<Key>…]}}
  • Key
Der Key ist entweder direkt ein Text oder eine Variable. Vor dem Key kann ein Modifierer (Mod) angegeben werden.
  • Mod
Mit dem Modifier kann der Key verändert werden. Definiert sind die Modifier l zum Umwandeln des Keys in Kleinbuchstaben und u zum Umwandeln in Großbuchstaben.

Das Kommando wandelt die Keys entsprechend der Modifier um, entfernt Leerzeichen und fügt zwischen den einzelnen Keys einen Unterstrich _ ein. Das Ergebnis wird dann zurückgeliefert.

{{keys:u: sg1 | 1x01 }}

Ergibt: SG1_1x01

Hinweis Damit nicht definierte Variablen als solche auch erkannt werden, müssen diese nach dem folgenden Muster eingesetzt werden: Nicht {{{1}}} sondern {{{1|}}}.

^Hinweise zum Einsatz[Bearbeiten]

Die Erweiterung kann, richtig eingesetzt, den Aufbau von Seiten beschleunigen, die häufig eine Vorlage aufrufen, welche aus einer großen Anzahl an Werten einen Wert liefert. Dazu sollte eine eigene Seite angelegt werden, die nur das Array füllt. Auf der eigentlichen Vorlagenseite sollte mit dem Befehl used geprüft werden, ob das Array bereits gesetzt wurde. Wenn nicht, kann die "Full"-Vorlage aufgerufen werden. Sonst sollte immer nur das Array ausgelesen werden.

Durch diese Konstruktion erreicht man, dass die große, daher langsame, 'Füll'-Vorlage nur einmal abgearbeitet werden muss und alle weiteren Zugriffe auf das Cache-Array erfolgen.

Die entsprechende Anweisung sollte wie folgt aussehen, definiert in Vorlage:EpName

{{#if: {{carray:EpName|u}} || {{EpName/Zuordnung}} }}{{carray:EpName|r|{{{1}}}}}

Die Vorlage EpName/Zuordnung füllt das Array EpName mit Werten, die dann von der Vorlage EpName ausgelesen werden.

Wichtiger Hinweis: Die oben angegebene Vorgehensweise führt zu Problemen bei gesichteten Versionen. Wird diese Erweiterung benutzt, sollte alternativ der Befehl file bzw. fileread eingesetzt werden.

^Kleine Parser-Erweiterungen[Bearbeiten]

#in

Ermittelt ob Elemente in einer Menge enthalten sind. Je nach Suchmodus ist die Suche erfolgreich wenn alle oder mindestens ein Element gefunden wird. Sowohl das Trennzeichen der Elemente als auch die Rückgabe kann definiert werden.

{{ #in: ELEMENT | LISTE | TRENNER | MODUS | RÜCKGABE }}
  • ELEMENT
Eine Liste der zu suchenden Elemente. Getrennt werden die Elemente durch das TRENNER-Zeichen.
  • LISTE
Eine Aufzählung von Elementen, getrennt durch Komma oder durch den in TRENNER angegebene Ausdruck
  • TRENNER
Definiert das Trennzeichen für die Listen. Wird keine Zeichen angegeben so wird das Komma benutzt
  • MODUS
Auswahl wie gesucht werden soll. Ist der MODUS == e (oder s) genügt es wenn ein Element gefunden wird. Wird kein Wert für MODUS angegeben oder a so müssen alle Elemente in der Liste vorkommen damit die Suche erfolgreich ist.
  • RÜCKGABE
Eine Liste, getrennt durch TRENNER, der möglichen Rückgabewerte. Der erste Wert wird im Erfolgsfall zurückgegeben der zweite Fall wenn die Suche erfolglos war. Es ist möglich auch nur einer der Werte anzugeben. Um nur einen Wert für den Misserfolg anzugeben muss dieser wie folgt definiert werden: ,WERT (wenn TRENNER == ',')
  • Ausgabe

Ist die Suche erfolgreich, so werden alle gefundenen Werte als Liste ausgegeben. Bei einer erfolglosen Suche liefert die Funktion einen leeren String. Dieses Verhalten kann mit dem Parameter RÜCKGABE geändert werden.

Beispiele
{{ #in: b,c,d | a,b,c ||e}}

Die Suche (Modus==e) nach b,c,d in der Liste a,b,c liefert: b,c

{{ #in: b,d | a,b,c ||e|ja,nein}}

Die Suche (Modus==e) nach b,d in der Liste a,b,c liefert: ja

{{ #in: b,d | a,b,c |||ja,nein}}

Die Suche nach b,d in der Liste a,b,c liefert: nein

trim

Entfernen von führenden oder nachfolgenden Leerzeichen.

{{trim:PARAMETER}}}
  • PARAMETER
Der Parameter kann ein Text oder sinnvoller eine Variable sein.

Als Rückgabe erhält man den angegebenen Wert ohne führende oder nachfolgende Leerzeichen. Der Einsatz der Funktion ist bei der Übergabe des Arraykeys sinnvoll, da es vorkommen kann, dass der Wert einer Variablen ein führendes Leerzeichen enthält.

userinfo

Liefert einige Informationen zum aktuellen Benutzer.

{{userinfo:PARAMETER}}
  • PARAMETER - Auswahl der gewünschten Information. Folgende Werte sind erlaubt
    • name - Benutzername oder bei nicht angemeldeten Benutzern die IP-Adresse.
    • id - Benutzernummer. Die id 0 steht für einen nicht angemeldeten Benutzer.
    • realname - Wirklicher Benutzername
    • skin - Name des Skins
    • email [|<benutzer>] - Email-Adresse des aktuellen oder angegebenen Benutzers
    • home [|<benutzer>] - Verweis auf die Benutzerseite des aktuellen oder angegebenen Benutzers
    • talk [|<benutzer>] - Verweis auf die Diskussionsseite des Benutzers des aktuellen oder angegebenen Benutzers
    • groups - Liefert eine Komma getrennte Liste aller Gruppen des Benutzers
    • group|<gname> - Prüft ob der Benutzer der Gruppe <gname> angehört. Ist der Benutzer in der Gruppe wird der Gruppenname <gname> zurück gegeben sonst ist die Rückgabe leer.
    • online|<name> - Prüft ob der Benutzer momentan online ist. Als Resultat liefert der Aufruf: online bzw. offline.
      Hinweis Diese Funktion setzt die Erweiterung WhosOnline voraus. Ist die Erweiterung nicht installiert, liefert der Aufruf unknown.
    • browser [|<kennung>] - Ermittelt die Browserkennung des Benutzers. Wird der Parameter angegeben prüft der Befehl ob der Parameter-Text in der Kennung enthalten ist. Ist dies der Fall wird der Parameter zurückgegeben sonst nichts. Wird vom Aufrufer keine Browserinfo geliefert, wird "undefined" zurückgegeben.
      Beispiel {{userinfo:browser|MSIE 9}} liefert MSIE 9 wenn der Internet Explorer in der Version 9 benutzt wird.

#link

Mit der Anweisung #link können HTML-Link Anweisungen in den Seitenkopf eingebaut werden. Eine Übersicht der Möglichkeiten findet man auf selfhtml.

{{#link:ART|SEITE[|TITEL]}}
  • ART: Bezeichnung des Links
  • SEITE: Name der Seite
  • TITLE: Wenn angegeben der Titel, sonst wird SEITE benutzt

Man kann diese Anweisung z.B. benutzen um Episoden zu verknüpfen. In den Artikel Die Invasion, Teil 3 wird dazu eingebaut:

{{#link:next|Die_Invasion,_Teil_4}}

Durch diese Anweisung wird

<link rel="next" href="http://www.stargate-wiki.de/wiki/Die_Invasion,_Teil_4" title="Die_Invasion,_Teil_4"/>

in den Seitenkopf eingebaut. Entsprechend kann man die vorhergehende Episode mit "prev" angeben.

Es gibt einige Browser bzw. Browsererweiterungen z.B. für Firefox die diese Angaben auswerten. Außerdem können die Angaben von Maschinen, z.B. der Google-Suche, gelesen und ausgewertet werden.

Achtung Es erfolgt keine Überprüfung des Parameters Art. Es sollten nur die gängigen Bezeichnungen benutzt werden. Diese findet man z.B. bei Selfhtml.

#recursiv

Wandelt einen Ausdruck so um, dass eine Vorlage auch mehrfach aufgerufen wird, wenn dies nötig ist. Dazu müssen die Werte die an die Vorlage übergeben werden sollen in () geschrieben werden. Erkennt die Vorlage einen Wert nicht so wird der Wert in das Ergebnis kopiert. Geklammerte Ausdrücke in Verweisen, d.h. Ausdrücke in [[]], werden nicht beachtet.

{{#recursiv:VORLAGE|TEXT|PARAMETER}}
  • VORLAGE
Name der eigentlichen Vorlage. An diese werden alle ermittelten Werte übergeben.
  • TEXT
Einer oder mehrere Werte die an die Vorlage übergeben werden sollen. Handelt es sich um mehrere Werte so müssen dies in Klammern () geschrieben werden. Nicht beachtet werden Ausdrücke in [[]].
  • PARAMETER
Dieser Parameter wird, falls vorhanden, an die Vorlage weitergegeben. Es ist auch möglich beliebig viele weitere Parameter an zu geben, jeweils durch | getrennt. Diese werden alle weitergegeben.
Achtung: Diese Parameter werden ohne Veränderung weitergegeben.
Beispiel
{{#recursiv:Kürzel/Organisation|(sgc) (sga)}}

Ergibt: Stargate-Kommando SGC Atlantis-Expedition Atlantis

Dieser Aufruf entspricht dem folgenden

{{Kürzel/Organisation|sgc}} {{Kürze/Organisation|sga}}

#tocmod
{{#tocmod:<Parameter>|<Default>}}

Mit dieser Anweisung wird gesteuert ob und wie das Inhaltsverzeichnis angezeigt wird. Die Erweiterung entspricht den Original Wiki-Befehlen __TOC__, __NOTOC__, __FORCETOC__ und ermöglich das Ein- bzw. Ausblenden des Inhaltsverzeichnisses. Die Ausgabe wird über die folgenden Parameter gesteuert. Sollen mehrere Parameter angegeben werden, müssen diese mit Komma getrennt angegeben werden. Wird der erste Parameter leer übergeben, so wird statt dessen der Defaultwert benutzt. Ist auch dieser nicht angegeben, wird als Parameter set benutzt.

  • no
Kein Inhaltsverzeichnis, entspricht __NOTOC__
  • force
Erzwingt das Inhaltsverzeichnis, entspricht __FORCETOC__
  • set
Setzt das Inhaltsverzeichnis an diese Stelle, entspricht __TOC__
  • hide
Das Inhaltsverzeichnis wird verdeckt ausgegeben, unabhängig von den Benutzereinstellungen.
  • show
Das Inhaltsverzeichnis wird aufgedeckt ausgegeben, unabhängig von den Benutzereinstellungen.
Beispiel
  • {{#tocmod:force,hide}}
Erzwingt das Inhaltsverzeichnis und verdeckt es.
  • {{#tocmod:{{{Register|}}}|set,hide}}
Benutzt entweder den Wert der Variable oder wenn diese nicht belegt ist den angegebenen Defaultwert. Bei der Variable ist der Trenner | (also {{{Register|}}} statt {{{Register}}}) wichtig, da nur so bei undefinierter Variable auch ein Leerstring übergeben wird.

^AddWhosOnline[Bearbeiten]

Bei AddWhosOnline handelt es sich um Zusatzfunktionen der Erweiterung WhosOnline. Die AddWhosOnline erkennt wenn ein Benutzer sich abmeldet und setzt ihn entsprechend auf offline. Außerdem wird ein Eintrag im Persönlichen Menü erzeugt der auf die WhosOnline Spezialseite verweist.

^IE9 Hack[Bearbeiten]

Das Problem

Die MediaWiki JavaScript-Funktion insertTag zeigt mit dem Internet Explorer 9 ein störendes Verhalten. Wird ein Text über die MediaWiki in den Editor eingefügt, so springt der Bildschirm an den Anfang der Seite. Diese Funktion wird von den Modulen NewArticle und DDInsert in SGPack benutzt.

Die Lösung

Um dies zu umgehen, speichert sich der IE9 Hack die Bildschirmposition vor dem Einfügen und setzt sie danach wieder zurück. Somit kann der Benutzer normal weiterarbeiten.

Probleme

Mit dem Internet Explorer kann es dadurch zu einem kurzen Flackern der Darstellung kommen, in anderen Browsern geschieht dies normalerweise nicht.

Hinweis

Die betroffene JavaScript-Funktion wird auch an anderer Stelle, z.B. im Editor, durch die MediaWiki Software benutzt. An diesen Stellen hilft der IE9 Hack nicht, da er nicht eingebunden wird.

^VideoPlayer[Bearbeiten]

VideoPlayer erlaubt das einbinden von externen Videoquellen in Mediawiki. Die Ausgabe der Videos erfolgt mit jwplayer. Das Einbinden erfolgt durch folgende Parser Anweisung.

{{#vplayer:video="VIDEO"}}

Der einzige notwendige Parameter ist entweder video oder playlist. Ist keiner davon angegeben erfolgt eine Fehlermeldung. Text Parameter sollten mit " oder ' eingeschlossen angegeben werden.

  • video
Angabe der Adresse des Videos. Es muss sich um eine vollständige Netzadresse handeln. Videos aus dem Wiki müssen also vorher umgewandelt werden. Dies kann durch die Mediawiki Funktion {{filepath:Datei}} erfolgen.
  • playlist
Erlaubt die Angabe mehrerer Videos, welche nacheinander abgespielt werden. Rechts vom Video erscheint eine Liste aller Videos aus der eines gewählt werden kann. Die einzelnen Videos werden durch Komma getrennt. Da es Netzadressen mit Komma geben kann ist es notwendig die Adressen in " einzuschließen!.
Zusätzliche Parameter
  • width, height
Breite und Höhe des Videos. Default: 480,270
Erlaubt die Angabe eines Bildes aus dem Wiki das vor dem Start des Videos gezeigt wird. Die Angabe der Datei erfolgt direkt ohne [[Bild:...]]
{{vplayer:video="VIDEO"|poster="SamPhoto.jpg"}}
Titel des Videos. Wird im Playbutton oder auch in der Playliste angezeigt.
Beschreibung der Videos in der Playliste. Wird in der Titelbar angezeigt
  • autostart Funktioniert nicht immer
Die Wiedergabe startet sofort.
  • repeat
Das Video läuft in einer Endlosschleife
  • mute
Das Video wird ohne Ton abgespielt
  • controls Parameter ohne Funktion - Fehler im SGPack
Es werden keine Bedienelemente angezeigt. Eine Sterung des Players ist dann nur noch über die Player API möglich!
  • displaytitle
Unterdrückt die Ausgabe des Titels im Playbutton
  • stretching Funktioniert nicht für alle Videos
Einstellung wie das Video an den Bereich angepasst werden soll. Mögliche Werte: uniform (Vorgabe), fill, exactfit, none
  • css
Erlaubt die Angabe einer CSS-Klasse, welche im DIV-Container des Videos gesetzt wird.
Position der Titelbar. Mögliche Werte: right (Vorgabe), bottom, none
Größe der Titelbar. Vorgabe: 150
Darstellung der Titelbar. Mögliche Werte: basic, extended (Vorgabe) - extended ist mit Vorschau und Beschreibung, Basic eine reine Textliste mit dem Titel
Anmerkungen
  1. (+) 1,0 1,1 1,2 Diese Parameter enthalten bei einer Playliste Komma getrennte Listen der Werte für die einzelnen Videos. Referenzfehler: Ungültiges <ref>-Tag. Der Name „Playlist1“ wurde mehrere Male mit einem unterschiedlichen Inhalt definiert.
  2. (+) 2,0 2,1 2,2 Diese Parameter ist ohne Playliste ohne Funktion. Referenzfehler: Ungültiges <ref>-Tag. Der Name „Playlist2“ wurde mehrere Male mit einem unterschiedlichen Inhalt definiert.
Beispiele
  • {{#vplayer:video="http://s3.amazonaws.com/sgu-assets/assets/Video/1243990124/604/sg11001-0194ws.flv"|width="250"|height="187"|poster="SamPhoto.jpg"}}
  • {{#vplayer:playlist="https://www.youtube.com/watch?v=6xJl1dGdddw","https://www.youtube.com/watch?v=jfNjgOIoo-c"|title="Video 1","Video 2"|description="text text","hallo video"|width="300"|height="300"|l.position="bottom"|l.size=100|l.layout="basic"}}
  • Weitere Beispiele findet man auf der Seite Benutzer:Rene/SGPack Test.
Hinweise

Die Ausgabe erfolgt in einem <div>-Bereich. Der Bereich kann mit der CSS-Klasse video_player verändert werden, die in allen Bereichen immer gesetzt ist. Als weitere Möglichkeit kann zu jedem Bereich eine eigene Klasse angegeben werden. Jeder Bereich hat einen eigene ID (video_player_NR, wobei NR die laufende Nummer des Players ist, in der Reihenfolge ihrer Angabe im Artikel).

LocalSettings-Parameter
  • $wgSgpVideoPlayerCacheOff
Wird der Parameter auf true gesetzt so wird der MW-Cache für die Seite mit Videoausgaben deaktiviert. In der Voreinstellung ist der Cache aktiv
  • $wgSgpVideoPlayerEngine
Ermöglicht die Auswahl eines Videoplayers. Momentan ist nur der jwplayer installiert.

^Javascript Steuerung[Bearbeiten]

Der Player kann mit Hilfe von Javascript gesteuert werden. Eine Einführung findet man im jwplayer Portal. Eine Liste der Funktionen in der API Reference.

Zur Ansteuerung eignen sich z.B. Javascript Button aus der SGPack Erweiterung. Die folgende Anweisung erzeugt einen Startknopf für das erste Video auf der Seite.

<jsbutton click="jwplayer('video_player_1').play();">Start Video 1</jsbutton>