WaBis

walter.bislins.ch

Makro: sel

Mit den sel-Makros kannst du Bereiche einer Wiki-Seite per Mausklick ein- und ausblenden oder durch verschiedene Varianten ersetzen.

Die Anwendung der sel-Makros besteht aus drei Teilen:

  • Ein-/ausblendbare Elemente definieren
  • Zusammengehörige Elemente gruppieren
  • Links definieren, mit denen Elemente einer Gruppe ausgewählt werden können

Prinzip

Jeder Abschnitt, jede Grafik, jedes Element das ein- und ausblendbar sein soll, muss zwischen den Makros sel ele und sel end stehen und bekommt dadurch einen Namen. Solchermassen definierte Elemente werden mit sel grp zu einer Gruppe zusammen geschlossen. Auch jede Gruppe bekommt einen Namen.

Mit dem Makro sel oder sel link können im Artikel irgendwo Links erzeugt werden, die dann beim Anklicken ein bestimmtes Element einer Gruppe sichtbar machen und alle anderen Elemente dieser Gruppe verbergen.

Beispiel

Ventrikel Thalamus Caudatus Pallidus Putamen

Informationen zum BildGehirn mit Thalamus und Basalganglien

In diesem Beispiel werden 5 Bilder geladen, jedoch immer nur eines davon angezeigt, abhängig davon, auf welchen der folgenden Links du klickst:

  1. Ventrikel
  2. Thalamus
  3. Nucleus caudatus
  4. Globus pallidus
  5. Putamen

Die Links können auch in Text integriert sein, etwa in der folgenden Art:

«Um das Ventrikel-System 1 gruppiert liegen die beiden Teile des Thalamus 2 und die Basalganglien, bestehend aus Nucleus caudatus 3, Globus pallidus 4 und Putamen 5

So wirds gemacht

Zunächst werden die fünf verschiedenen Bilder eingebunden. Damit aber nicht alle gleichzeitig dargestellt werden, musst du jedes zwischen die Makros sel ele und sel end setzen. Um die Buttons über dem Bild zu platzieren und das Bild rechtsbündig mit umfliessenden Text darzustellen, wird das Makro box verwendet:

{{sel grp|Brain|Ventrikel|Thalamus|Caudatus|Pallidus|Putamen|All}}

{{sel ele|Ventrikel|false}}{{box|right|310px|$centerP}}

{{sel btn|Brain|1|5}}

[[Bild:Brain1.jpg|275px|rvframed|Gehirn mit Ventrikel-System]]

{{box end}}{{sel end}}

{{sel ele|Thalamus|false}}{{box|right|310px|$centerP}}

{{sel btn|Brain|2|5}}

[[Bild:Brain2.jpg|275px|rvframed|Gehirn mit Thalamus (gelb)]]

{{box end}}{{sel end}}

:

{{sel ele|All|true}}{{box|right|310px|$centerP}}

{{sel btn|Brain|0|5}}

[[Bild:Brain5.jpg|275px|rvframed|Gehirn mit Thalamus und Basalganglien]]

{{box end}}{{sel end}}

Zuerst müssen alle Elemente zu einer Gruppe zusammengefasst werden:

{{sel grp|Brain|Ventrikel|Thalamus|Caudatus|Pallidus|Putamen}}

Das letzte Bild soll zu Beginn angezeigt werden. Deshalb wird dort bei sel ele als zweiter Parameter true angegeben.

Um ein Element aus dieser Gruppe als sichtbar auszuwählen und alle anderen unsichtbar zu machen, kannst du die Makros sel oder sel link verwenden:

# {{sel link|Brain:Ventrikel|Ventrikel}}
# {{sel link|Brain:Thalamus|Thalamus}}
# {{sel link|Brain:Caudatus|Nucleus caudatus}}
# {{sel link|Brain:Pallidus|Globus pallidus}}
# {{sel link|Brain:Putamen|Putamen}}

Weitere Möglichkeiten

Es ist auch möglich, mehrere Elemente aus mehreren Gruppen gleichzeitig sichtbar zu machen, indem beim Makro sel bzw. sel link mehrere Gruppen und Elemente angegeben werden. Zum Beispiel:

{{sel|Brain:Ventrikel,Thalamus|Zwei Bilder anzeigen}}

{{sel|Brain1,Brain2:Pallidus|Pallidus in zwei Gruppen anzeigen}}

{{sel|Brain1,Brain2:Ventrikel,Thalamus|Zwei Bilder in zwei Gruppen anzeigen}}

{{sel|Brain1:Ventrikel;Brain2:Thalamus|Je ein Bild in zwei Gruppen anzeigen}}

Zudem lassen sich Elemente auch verschachteln und es können beliebig viele Gruppen auf einer Seite definiert werden.

Mit dem Makro sel rb oder noch einfacher mit sel btn lassen sich mehrere Radio-Buttons definieren, wobei du angeben kannst, welcher aktiviert erscheinen soll:

{{sel rb|1|Brain|Ventrikel|Thalamus}}

So siehts aus: Ventrikel Thalamus

{{sel btn|Brain|1}}

So siehts aus: Ventrikel Thalamus Caudatus Pallidus Putamen All

JavaScript Schnittstelle

Es kann nützlich sein, die Elemente mittels JavaScript zu steuern, um zum Beispiel durch einen Klick auf ein Bild das nächste Element einer Gruppe zu aktivieren. Die entsprechenden JavaScript Objekte können wiefolgt gesteuert werden:

SEL( SEL_GRP_GroupName, [ ElementName1, ... ] );

Im onclick Event eines Bildes kann dies wiefolgt erfolgen:

[[:Bild:Bild1.jpg|800px|bframed|nozoom|
  onclick="SEL(SEL_GRP_Brain,\['Ventrikel'\]);return false;"|
  Bild-Text]]

In diesem Fall ist es wichtig, das Bilder-Flag nozoom zu verwenden, damit der Klick nicht zusätzlich einen Zoom auslöst.

sel grp: Gruppe definieren

Mit dem sel grp Makro werden Elemente zu einer Gruppe zusammen geschlossen. Das Makro muss vor den Elementen stehen, welche die Gruppe bilden. Das Makro sel btn greift auf die in der Gruppe definierten Button-Texte zu, daher muss sel grp vor diesem Makro stehen.

{{sel grp|GruppenName|ElementName=ButtonText|...}}
GruppenName
ist ein beliebiger Name für die Gruppe. Dieser Name darf auf der Wiki-Seite nur einmal verwendet werden. Jede Gruppe muss also einen anderen eindeutigen Namen haben.
ElementName=ButtonText
definiert, welche Element-Namen zu einer Gruppe zusammengefasst werden sollen. Mit ButtonText wird der zu diesem Element gehörende Auswahl-Button bei der Verwendung des Makros sel btn beschriftet. Wird ButtonText nicht angegeben, so wird der Button beim Makro sel btn mit ElementName beschriftet.

sel ele: Elemente definieren

Die alternativ anzuzeigenden Elemente (Text oder Bilder) müssen je zwischen die Makros sel ele und sel end zu stehen kommen:

{{sel ele|ElementName|VisiFlag|Styles}}
 Text und/oder Bilder
{{sel end}}
ElementName
ist ein beliebiger Name für das Element. Dieser Name darf auf der Wiki-Seite nur einmal verwendet werden. Jedes Element muss also einen eindeutigen Namen haben.
VisiFlag (true oder false)
gibt an, ob das Element zu Beginn sichtbar oder unsichtbar sein soll.
Styles (optional)
kann dazu verwendet werden, um für das Element zusätzliche CSS-Klassen und Styles anzugeben, z.B. {{sel ele|...|color:red|$myClass}}.

sel, sel link: Elemente auszuwählen

Sind nun mehrere Elemente auf der Seite definiert worden, so muss du dem Leser noch die Möglichkeit geben, eines oder mehrere davon per Mausklick auszuwählen:

{{sel|SelektionsListe|LinkText}} oder
{{sel link|SelektionsListe|LinkText}}
SelektionsListe
definiert welche Elemente in welchen Gruppen beim Klick auf LinkText angezeigt werden sollen. SelektionsListe ist eine durch ; getrennte Liste von Selektionen. Jede Selektion hat folgenden Aufbau: GruppenListe:ElementListe. Jede Gruppen- und ElementListe ist eine durch Komma getrennte Liste von Gruppen- bzw. Elementnamen.
LinkText
ist der Text, der beim Anklicken das Element sichtbar macht.

Im einfachsten Fall gibt SelektionsListe nur ein Element einer Gruppe an:

{{sel|Gruppe:Element|LinkText}}

Du kannst mehrere Elemente einer Gruppe gleichzeitig anzeigen lassen:

{{sel|Gruppe:Element1,Element2,...|LinkText}}

Auch das Anzeigen von gleichnamigen Elementen aus mehreren verschiedenen Gruppen gleichzeitig ist möglich:

{{sel|Gruppe1,Gruppe2,...:Element|LinkText}}

Auch mehrere verschiedene Elemente aus verschiedenen Gruppen können gleichzeitig angegeben werden:

{{sel|Gruppe1:Element1,Element2;Gruppe2:Element3,...|LinkText}}

Die beiden Varianten sel und sel link unterscheiden sich nur in der Darstellung des Links. Der Link des Makros sel wird wie eine kleine Schaltfläche dargestellt, da ja der Link eigentlich eine Funktion auslöst und nicht zu einer anderen Seite führt. Willst du aber lieber, dass der Link normal aussieht, so kannst du sel link verwenden.

sel btn: Automatisches erzeugen von Radio Buttons

Um verschiedene Elemente auswählen zu können eignen sich Radio-Buttons. Das Makro sel btn erstellt eine Reihe solcher Buttons aufgrund der Definition einer Gruppe (siehe sel grp):

{{sel btn|Gruppe|Auswahl|AnzahlButtons}}
Gruppe
Gibt die Gruppe an, für welche die Radio-Buttons erzeugt werden sollen.
Auswahl
Gibt an, der wievielte Radio-Button in aktivem Zustand gezeichnet werden soll. Es kann eine Zahl oder ein String der Form ButtonText angegeben werden. Mit 0 oder einem Leerstring, oder wenn das Element nicht gefunden wird, oder wenn der Index ausserhalb des Bereiches ist wird kein Radio-Button aktiviert gezeichnet.
AnzahlButtons: optional
Wenn nicht für alle Elemente einer Gruppe Buttons erzeugt werden sollen, kann hier angegeben werden, wie viele Buttons erzeugt werden sollen.

Einfache Beispiele

Die folgenden Beispiele sind gleichwertig. Es ist eine Gruppe Brain definiert welche die Elemente Ventrikel, Thalamus usw. enthält. Es werden fünf Buttons mit diesen Beschriftungen erzeugt wobei der erste als aktiver Button angezeigt wird:

{{sel btn|Brain|1|5}}

oder 

{{sel btn|Brain|Ventrikel|5}}

So sieht es aus: Ventrikel Thalamus Caudatus Pallidus Putamen

sel rb: Radio Buttons

Um verschiedene Elemente aus verschiedenen Gruppen (gleichzeitig) auswählen zu können kann das Makro sel rb zum erstellen von Buttons verwendet werden:

{{sel rb|Auswahl|GruppenListe|Button|Button|...}}
Auswahl
Gibt an, der wievielte Radio-Button in aktivem Zustand gezeichnet werden soll. Es kann eine Zahl oder ein String der Form ButtonText angegeben werden. Mit 0 oder einem Leerstring, oder wenn das Element in den folgenden Button Argumenten nicht gefunden wird, oder wenn der Index ausserhalb des Bereiches ist wird kein Radio-Button aktiviert gezeichnet.
GruppenListe
Gibt die Selektions-Gruppen an. Diese Gruppen werden auf alle Button Elemente angewandt, bei denen keine explizite Gruppe angegeben ist. Wenn bei jedem Button eine Gruppe angegeben ist, wird GruppenListe ignoriert und kann leer bleiben.
Button
Gibt an, welche Elemente aus welchen Gruppen beim Anklicken dieses Buttons angezeigt werden sollen. Gleichzeitig wird auch die Beschriftung des entsprechenden Buttons hier angegeben. Button muss das folgende Format haben: SelektionsListe=ButtonText. Wird ButtonText nicht angegeben, wird der letzte Element-Name der SelektionsListe verwendet.

SelektionsListe ist eine durch ; getrennte Liste von Selektionen. Jede Selektion hat folgenden Aufbau: GruppenListe:ElementListe. Jede Gruppen- und ElementListe ist eine durch Komma getrennte Liste von Gruppen- bzw. Elementnamen. Wenn keine GruppenListe bei einem Button angegeben wird, so wird das Argument 2 GruppenListe verwendet.

Damit können über einen Button mehrere Elemente aus verschiedenen Gruppen gleichzeitig angezeigt werden.

Einfache Beispiele

Die folgenden Beispiele sind alle gleichwertig. Es ist eine Gruppe Brain definiert welche die Elemente Ventrikel und Thalamus enthält. Es werden zwei Buttons mit diesen Beschriftungen erzeugt wobei der erste als aktiver Button angezeigt wird:

{{sel rb|1|Brain|Ventrikel|Thalamus}}

oder 

{{sel rb|1||Brain:Ventrikel|Brain:Thalamus}}

oder 

{{sel rb|Ventrikel|Brain|Ventrikel|Thalamus}}

So sieht es aus: Ventrikel Thalamus

Die Radio-Buttons müssen in jeder Ansichts-Variante erneut definiert werden, jedoch jedesmal mit einem anderen aktivierten Button. Damit das obige Beispiel nicht X mal repetiert werden muss, wobei nur Selektion geändert ist, kannst du ein Makro definieren:

{{*Buttons|{{sel rb|$1|Brain|Ventrikel|Thalamus}}*}}

Jetzt musst du bei jeder Ansichts-Variante nur noch das Makro Buttons angeben:

{{sel ele|Ventrikel|true}}
{{Buttons|Ventrikel}}
:
{{sel end}}

{{sel ele|Thalamus|false}}
{{Buttons|Thalamus}}
:
{{sel end}}

Weitere Infos zur Seite
Erzeugt Donnerstag, 9. Februar 2006
Zum Seitenanfang
Geändert Mittwoch, 6. April 2016
von wabis