Galerie mit Benutzerlink
Eine Galerie, deren Fotos auf die Benutzerseite verlinken statt auf die Dateiseite. Der Parameter dafür heißt redirects und ist kaum bekannt.
Versionshinweis. redirects setzt eine SRF-Version voraus, die neuer ist als 5.2.0. In 5.2.0 sucht das zugehörige Skript den Bildlink noch über die inzwischen entfallene CSS-Klasse a.image und ersetzt deshalb jede Kachel durch die Meldung „Das Bild wurde nicht gefunden“. Das Problem wurde inzwischen gelöst, indes noch nicht veröffentlicht. (PR 977, 17.04.2026). Dieses Wiki läuft noch auf 5.2.0, die Galerie unten zeigt also vorerst genau diese Meldung. Sobald das Release eingespielt ist, stimmt die Seite von selbst.
Wie es funktioniert
SRF schreibt das Sprungziel serverseitig in das alt-Attribut des Vorschaubilds und hängt der Galerie die CSS-Klasse srf-redirect an. Das Modul ext.srf.gallery.redirect tauscht anschließend im Browser die Links der Vorschaubilder aus.
Die Abfrage
{{#ask: [[Category:Mitarbeiter]] [[Hat Profilbild::+]]
|?Hat Profilbild
|?Hat Benutzerseite=Benutzerseite
|mainlabel=Person
|format=gallery
|imageproperty=Hat Profilbild
|captionproperty=-
|redirects=Benutzerseite
|widths=100
|heights=125
|limit=300
}}
Ergebnis
Die Attribute
Beide brauchen Datentyp Seite, sonst sammelt SRF sie nicht ein.
- Hat Profilbild verweist auf die Bilddatei.
- Hat Benutzerseite verweist auf die Benutzerseite und ist das Sprungziel.
Fallstricke
- Das Label des Bild-Printouts darf nicht leer sein.
|?Hat Profilbild=setzt ein leeres Label, undimagepropertyfindet dann keinen passenden Printout. Ohneredirectsweicht SRF auf einen anderen Codepfad aus und die Galerie sieht trotzdem richtig aus, der Fehler fällt also nicht auf. Sobaldredirectsdazukommt, greift der Printout-Pfad und die Galerie bleibt komplett leer, ohne jede Meldung. Also|?Hat Profilbildohne Gleichheitszeichen schreiben. captionpropertyundredirectsdürfen nicht dieselbe Quelle haben. Beide auf-gesetzt heißt: die Bildunterschrift gewinnt, dasalt-Attribut bleibt leer und der Sprung fällt still aus. Hier steht deshalbcaptionproperty=-für den Personennamen undredirects=Benutzerseitefür das Sprungziel.captionproperty=-ersetzt|?=. Ohne das stehen plötzlich Dateinamen unter den Fotos statt der Personennamen.- Ein API-Aufruf pro Bild. Für ein Sprungziel vom Typ Seite holt das Skript die URL einzeln je Bild über die API und legt sie im localStorage ab. Beim ersten Seitenaufruf bedeutet
limit=300also bis zu 300 Requests. Ist das Sprungziel vom Typ URL, wird der Wert direkt gesetzt und es fällt kein Request an. overlayschaltetredirectsab. Die beiden schließen sich gegenseitig aus.- Ohne JavaScript bleibt es beim Link auf die Dateiseite.
Variante: Sprung auf die Seite des Suchtreffers
Wenn das Ziel die Mitarbeiterseite selbst ist und nicht eine separate Benutzerseite, braucht es kein zusätzliches Attribut. redirects=- verweist auf das Subjekt des Treffers. Dann darf captionproperty aber nicht ebenfalls - sein.
Variante ohne Wartezeit auf das Release
Dieselbe Galerie lässt sich auch vollständig serverseitig bauen, über format=template und den link=-Parameter der Bildeinbindung. Das kommt ohne redirects, ohne JavaScript und ohne die API-Aufrufe aus und funktioniert daher auch auf 5.2.0. Die Vorlagen dazu liegen unter Template:Kollegium Anfang, Template:Kollegium Kachel und Template:Kollegium Ende.
Testdaten
| Mitarbeiter | Profilbild | Benutzerseite |
|---|---|---|
| Mitarbeiter Anna Beispiel | ![]() | Karsten |
| Mitarbeiter Bernd Beispiel | User Jeroen | |
| Mitarbeiter Clara Beispiel | Alistair |
