Rene (Diskussion | Beiträge) Die Seite wurde neu angelegt: „==Beschreibung== SGPack ist eine Sammlung von Mediawiki Erweiterungen die speziell für Stargate-Wiki programmiert wurden. Die Sammlung enthält die folgenden Erw…“ |
Rene (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 5: | Zeile 5: | ||
* NewArticle | * NewArticle | ||
:Um das Anlegen von neuen Artikeln zu erleichtern ermöglicht es diese Erweiterung Artikelvorlagen direkt in den neuen Artikel einzubinden. | :Um das Anlegen von neuen Artikeln zu erleichtern ermöglicht es diese Erweiterung Artikelvorlagen direkt in den neuen Artikel einzubinden. | ||
* PageProtection | |||
:Erlaubt es Benutzern ihre Seiten (Benutzer und Benutzer Diskussion) zu schützen. | |||
* DropDownInsert | |||
:Mit dieser Erweiterung können Eingabehilfen in Form von Text, Bildern oder Listen erzeugt werden. | |||
* CacheArray | |||
: Ermöglicht das anlegen und auslesen von Arrays über mehrere Seiten. | |||
* ParserAdds | |||
: Kleine Parser Funktionen: trim, userinfo, recursiv | |||
==Copyright== | ==Copyright== | ||
Die Erweiterung unterliegt der GPL (Version 2). Das bedeutet der Einsatz in anderen MediaWikis ist erlaubt solange der Hinweis auf den Author 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 System 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 Author 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 System benutzt werden, unter Beachtung der GPL. | ||
| Zeile 93: | Zeile 101: | ||
Die Erweiterung benutzt die MediaWiki Hooks '''OutputPageBeforeHTML''', '''PersonalUrls''' und '''BeforePageDisplay'''. | Die Erweiterung benutzt die MediaWiki Hooks '''OutputPageBeforeHTML''', '''PersonalUrls''' und '''BeforePageDisplay'''. | ||
==PageProtection== | |||
===Beschreibung=== | |||
Mit dieser Erweiterung können Benutzer bestimmen wer auf ihre Seiten zugreifen darf. Geschützt sind nur die Seiten im Benutzernamensraum (z.B. Benutzer:Name). Möchte man das andere diese Seite bearbeiten können gibt man sie mit dem user-tag frei. | |||
* <nowiki><user>XYZ</user></nowiki> gibt die Seite nur für den Benutzer XYZ frei. | |||
* <nowiki><user>*</user></nowiki> gibt die Seite für alle angemeldeten Benutzer frei. | |||
* <nowiki><user>**</user></nowiki> gibt die Seite für alle angemeldeten Benutzer und IPs frei. | |||
Seiten im Benutzerdiskussionsnamensraum sind normalerweise für alle frei. Um diese zu schützen muss zumindest ein user-tag auf der Seite definiert werden. Um die Seite nur für sich selbst frei zu geben schreibt man also <nowiki><user>MeinName</user></nowiki> auf die Seite. Den selben Effekt erreicht man auch mit dem kurzen <nowiki><user>-</user></nowiki>. | |||
Der Besitzer einer Seite kann sich nicht selbst aussperren, das gleiche gilt für die Administratoren. | |||
==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: | |||
* <nowiki><ddselect titel="TITEL" size="SIZE" name="NAME">... ddvalue ...</ddselect></nowiki> | |||
: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. | |||
* <nowiki><ddvalue show="SHOWTEXT" sample="SAMPLETEXT" picture="NAME">... WERT ...</ddvalue></nowiki> | |||
: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 einem + Zeichen kann man angeben wo der Cursor platziert werden soll. | |||
* <nowiki><ddbutton show="SHOWTEXT" sample="SAMPLETEXT" picture="NAME">... WERT ...</ddbutton></nowiki> | |||
:Entspricht ddvalue, allerdings werden die Button ohne Auswahlliste, als einzelne Elemente, benutzt. | |||
==CacheArray== | |||
Die Parser-Erweiterung CacheArray ermöglicht das anlegen und auslesen von Arrays. Das besondere dabei ist das 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=== | |||
Die Erweiterung bietet neben dem eigentlichen Array Befehl (carray) noch einige weitere Befehle die bei der Benutzung der Erweiterung hilfreich sind. | |||
* '''carray''' | |||
:Der Befehl zum setzen, auslesen und löschen der Arrays | |||
* '''keys''' | |||
:Mehrere Index-Keys zu einem einzigen Verbinden | |||
====carray==== | |||
<pre><nowiki>{{carray:<Name_des_Array>|<Kommando>[''Parameter''…''Array-Werte'']}}</nowiki></pre> | |||
* '''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 <nowiki>{{#switch:}}</nowiki> Definition. Ein Beispiel: | |||
<pre><nowiki>{{carray:EpName|w | |||
| #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 | |||
}}</nowiki> | |||
</pre> | |||
:Das Array-Element '''#default''' wird immer dann ausgegeben wenn die Anfrage nach einem nicht definierten Wert gestellt wird, siehe Befehl '''read'''. | |||
* '''r''' oder '''read''' | |||
:Mit dem Kommando '''read''' erfolgt die Abfrage des Arrays. Das folgende Beispiel | |||
<pre><nowiki>{{carray:EpName|r|SGA_1x01}}</nowiki></pre> | |||
würde nach der oben angegebenen Definition den Wert | |||
<pre>Aufbruch in eine neue Welt, Teil 1</pre> | |||
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: | |||
<pre><nowiki>{{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 | |||
}}</nowiki></pre> | |||
* '''f''' oder '''file''' | |||
:Das Kommando entspricht '''write''' und erzeugt ebenfalls ein Array. Der Unterschied ist das 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> | |||
* '''fr''' oder '''fileread''' | |||
: Das Kommando ist eine Kombination aus '''file''' und '''read''' | |||
<pre><nowiki>{{carray|EpName|fr|Vorlage:EpName/Fill|SG1_1x10}}</nowiki></pre> | |||
* '''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. | |||
<pre><nowiki>{{carray:EpName|u}}</nowiki></pre> | |||
* '''c''' oder '''count''' | |||
: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> | |||
* '''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. | |||
<pre><nowiki>{{carray:EpName|d}}</nowiki></pre> | |||
====keys==== | |||
<pre><nowiki>{{keys:[<Mod>:]<Key>[|[<Mod>:]<Key>…]}}</nowiki></pre> | |||
* '''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. | |||
<pre><nowiki>{{keys:u: sg1 | 1x01 }}</nowiki></pre> | |||
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>. | |||
===Hinweise zum Einsatz=== | |||
Die Erweiterung kann, richtig eingesetzt, den Aufbau von Seiten beschleunigen die häufig eine Vorlage aufrufen die 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 das 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 | |||
<pre><nowiki>{{#if: {{carray:EpName|u}} || {{EpName/Fill}} }}{{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. | |||
'''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. | |||
==ParserAdds== | |||
===trim=== | |||
Entfernen von führenden oder nachfolgenden Leerzeichen. | |||
<pre><nowiki>{{trim|PARAMETER}}}</nowiki></pre> | |||
*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 das der Wert einer Variablen ein führendes Leerzeichen enthält. | |||
===userinfo=== | |||
Liefert einige Informationen zum aktuellen Benutzer. | |||
<pre><nowiki>{{userinfo|PARAMETER}}</nowiki></pre> | |||
*PARAMETER - Auswahl der gewünschten Information. Folgende Werte sind erlaubt | |||
:name - Benutzername | |||
:id - Benutzernummer | |||
:realname - Wirklicher Benutzername | |||
:email - Emailadresse | |||
:home - Verweis auf die Benutzerseite | |||
:talk - Verweis auf die Diskussionsseite des Benutzers | |||
===#recursiv=== | |||
Wandelt einen Ausdruck so um das eine Vorlage auf mehrfach aufgerufen wird, wenn dies nötig ist. | |||
<pre><nowiki>{{#recursiv:VORLAGE|WERTE|PARAMETER}}</nowiki></pre> | |||
* VORLAGE | |||
:Name der eigentlichen Vorlage. An diese werden alle ermittelten Werte übergeben. | |||
* WERTE | |||
: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. | |||
* PARAMETER | |||
:Dieser Parameter wird, falls vorhanden, an die Vorlage weitergegeben. | |||
====Beispiel==== | |||
<pre><nowiki>{{#recursiv:Kürzel\Organisation|(sg1)(sga)}}</nowiki></pre> | |||
Dieser Aufruf entspricht dem folgenden | |||
<pre><nowiki>{{Kürzel\Organisation:sg1}}{{Kürze\Organisation:sga}}</nowiki></pre> | |||
==Code== | ==Code== | ||
Download des Codes: [http://www.stargate-wiki.de/download/SGPack.txt SGPack.php] | Download des Codes: [http://www.stargate-wiki.de/download/SGPack.txt SGPack.php] | ||