Wikipedia Diskussion:Technik/Archiv/MediaWiki:Gadget-ImageSiblings.js

aus Wikipedia, der freien Enzyklopädie
Letzter Kommentar: vor 7 Jahren von Schnark in Abschnitt SyntaxError
Zur Navigation springen Zur Suche springen

Dieses Skript ist einfach Klasse. Ich hätte da nur zwei Verbesserungsvorschläge, dann könnte man es vielleicht sogar auf die allgemeine Monobook loslassen (zumindest als Gadget):Flominator 16:28, 8. Nov. 2009 (CET)Beantworten

Umgang mit großen Bildern

[Quelltext bearbeiten]

Wenn das auf der Bildbeschreibungsseite angezeigte Bild relativ breit oder der Bildschirm relativ schmal ist, verdeckt die Box das Bild. --Flominator 16:28, 8. Nov. 2009 (CET)Beantworten

Weiss nicht, wie ich Bild oder Box kleiner bzw. Bildschirm größer machen kann ;-) also habe ich eine hide/show- und close-Funktion hinzugefügt. Habe auch 50% Transparenz probiert, siehr aber Sch...lecht aus. --Magnus Manske 18:47, 6. Dez. 2009 (CET)Beantworten
Das sieht schick aus. Danke. Wäre es nicht auch eine Möglichkeit gewesen, die Box bei Bedarf in die nächste Zeile zu setzen? --Flominator 20:53, 9. Dez. 2009 (CET)Beantworten

Übersetzung

[Quelltext bearbeiten]

Die Links sind bisher leider nur Englisch. Vielleicht lässt sich da ja etwas über Interwiki-Links etc. realisieren. Vielleicht gibt es ja sogar schon etwas in der Richtung, das man anzapfen könnte. --Flominator 16:28, 8. Nov. 2009 (CET)Beantworten

Nicht sicher, welche Links Du meinst. Habe für Thumbnail-links auf Commons mal uselang=de hinzugefügt, auf gut Glück... --Magnus Manske 18:48, 6. Dez. 2009 (CET)Beantworten
Ich meinte die Begriffe über den Thumbnails. Das mit uselang ist auch eine sehr gute Idee. Leider kriege ich keine uselang-Links angezeigt :( --Flominator 20:56, 9. Dez. 2009 (CET)Beantworten

Bug … und -fix

[Quelltext bearbeiten]
  • Leyo berichtete heute von einem Fehler.
  • Ursache ist, dass im Bearbeitungsmodus kein DOM-Element id="file" existiert. In der Versionsgeschichte und auf der Diffpage gibt es das auch nicht, und auch keinen Ort für die Anzeige des Ergebnisses. Trotzdem wird dann immer ein überflüssiger und Server wie Benutzernetzverbindung belastender Request gemacht, dessen Ergebnis nur eine Fehlermeldung produziert.
  • Deshalb würde ich vorschlagen, die erste Zeile von commonsSiblingsInit zu ersetzen durch:
if ( mw.config.get( "wgNamespaceNumber" ) !== 6  ||
     mw.config.get( "wgAction" ) !== "view" ) {
   return;
}

VG --PerfektesChaos 22:54, 7. Dez. 2011 (CET)Beantworten

Im Vertrauen in dich habe ich es umgesetzt. Zumindest scheint es nichts kaputt zu machen. ;-)
Ich habe ImageSiblings in der en-WP nutzen wollen und daher in meiner dortigen common.js eingebunden. Funktionieren tut's aber nicht. --Leyo 13:25, 8. Dez. 2011 (CET)Beantworten
Hast du auch die ImageNotes aktiv? Mit denen verträgt es sich nämlich leider nicht. --Flominator 14:56, 8. Dez. 2011 (CET)Beantworten
Ups, deine prompte Antwort hatte ich übersehen.
Nein, den ImageAnnotator (den meinst du doch, oder?) habe ich nicht aktiviert. Eine JS-Fehlermeldung kriege ich nicht. --Leyo 10:40, 21. Dez. 2011 (CET)Beantworten

Protokollrelative URLs

[Quelltext bearbeiten]

Unter Benutzer:Fomafix/Gadget-ImageSiblings.js habe ich eine nach mw:ResourceLoader/JavaScript Deprecations und mw:Manual:Coding conventions/JavaScript überarbeitete Version (Versionsvergleich). Gleichzeitig habe ich alle Link auf protokollrelative URLs umgestellt. Damit die Bilder selbst protokollrelativ geladen werden, muss das Toolserverseitig geändert werden. --Fomafix 17:01, 7. Jan. 2012 (CET)Beantworten

Könntest du anstelle der fixen Codierung von „de“ das in Abhängigkeit der Wikipedia-Sprachversion lösen? Dann könnte des Script auch in andern Wikipedias eingesetzt werden. Siehe einen Abschnitt drüber und en:Wikipedia:Gadget/proposals#Image Siblings. --Leyo 17:44, 7. Jan. 2012 (CET)Beantworten
Ich habe es mal überarbeitet. Damit sollte die Sprache und ob das Bild auf Commons liegt auch auf anderen Wikipedias erkannt werden. Die Texte selbst müssen noch separat übersetzt werden. Erst mit mw:RL2 wird es dafür eine universelle Lösung geben. --Fomafix 18:03, 7. Jan. 2012 (CET)Beantworten
Ups, deine Antwort hatte ich irgendwie übersehen. Den dritten Satz verstehe ich nicht ganz bzw. weiss nicht, was konkret zu tun wäre. --Leyo 11:21, 10. Feb. 2012 (CET)Beantworten
Der Text ist auf deutsch. Damit das Gadget vollständig internationalisiert ist, sollte der Text auch übersetzbar sein. --Fomafix 11:30, 10. Feb. 2012 (CET)Beantworten
Das Wie und Wo ist mir nicht klar. --Leyo 11:53, 10. Feb. 2012 (CET)Beantworten
Ich habe es mal für Deutsch und Englisch übersetzt. Mit RL2 kann die Übersetzung in MediaWiki ausgelagert werden. --Fomafix 12:43, 10. Feb. 2012 (CET)Beantworten
Danke! Bevor ich's übernehme, kannst du mal schauen, ob der erste Punkt im Code berücksichtigt werden kann? --Leyo 13:51, 10. Feb. 2012 (CET)Beantworten
Der Fehler und alle weiteren Fehler und Übersetzungen liegen serverseitig und müssen dort korrigiert werden. --Fomafix 15:04, 10. Feb. 2012 (CET)Beantworten
Danke für die Antwort! Ich habe deine Version nun implementiert. Mal schauen, ob dieses Problem damit gelöst wird. In der en-WP funktioniert es nun bei lokalen Bildern (nur viel längere Ladezeit als hier), nicht aber bei Commons-Bildern. --Leyo 15:24, 10. Feb. 2012 (CET)Beantworten
@Fomafix: Sollte man das über den RessourceLoader laden lassen? Es sind zwar keine Abhängigkeiten notwendig, man kann aber trotzdem per RessourceLoader laden. Der Umherirrende 16:17, 10. Feb. 2012 (CET)
Wenn du die Zeile
function file_siblings_callback( html ) {
ersetzt durch
window.file_siblings_callback = function ( html ) {
vermutlich ja, sonst vermutlich nein. --Schnark 09:38, 11. Feb. 2012 (CET)Beantworten
Die globale function lässt sich wohl nicht vermeiden, weil dann der callback nicht gefunden wird. Ich habe die function, wie angeraten, mal an window geheftet. Wenn Fomafix nichts dagegen hat, kann ich gerne den RessourceLoader aktivieren. Der Umherirrende 10:58, 11. Feb. 2012 (CET)
Am Ende fehlt noch ein Semikolon (diff), das beim ResourceLoader für Probleme sorgen könnte. Ansonsten spricht nichts gegen das Laden per ResourceLoader. --Fomafix 11:51, 11. Feb. 2012 (CET)Beantworten
Ich habe dann mal den ResourceLoader aktiviert. Ist auch sofort aktiv. Der Umherirrende 12:17, 11. Feb. 2012 (CET)

Generell ist die derzeitige Schnittstelle per eingebundene Callback-Funktion schlecht und sollte umgebaut werden. Wenn der Server eine Fehlermeldung liefert, treten JavaScript-Fehler auf. Der Dienst auf dem Toolserver hat auch eine schlechte Verfügbarkeit. Vermutlich ist durch die Aktivierung auf verschiedenen Projekten die Last recht hoch. Auch sollte das komplette HTML-Generieren clientseitig gemacht werden, damit die Lokalisierung besser gemacht werden kann. --Fomafix 11:51, 11. Feb. 2012 (CET)Beantworten

Da stimmte ich dir zu, vorallem liefert die Seite aktuell immer http aus, auch wenn man mit https kommt. Ich hatte deshalb heute morgen auch ein JIRA-Bug aufgemacht. Der Umherirrende 12:17, 11. Feb. 2012 (CET)
Die umgebende Callback-Funktion ist doch notwendig, um hier nach JSONP die Cross-Domain-Abfrage durchführen zu können. Ich habe meine Implementierung auf jQuery.ajax() umgebaut. Damit kümmert sich jQuery um das Anlegen der entsprechenden Callback-Funktion. --Fomafix 18:23, 11. Feb. 2012 (CET)Beantworten
Ja, somit hätte man keine globale function. Ich warte aber noch mal Kommentare ab, weil ich mich damit nicht so auskenne. Der Umherirrende 14:26, 12. Feb. 2012 (CET)
Neija, jQuery legt die globale Funktion windows.file_siblings_callback() dynamisch an und löscht sie wieder, sobald die Antwort verarbeitet ist. Das ist auch genau das, was wir wollen. --Fomafix 15:24, 12. Feb. 2012 (CET)Beantworten
Da bis jetzt keine Einwände kamen und sich die Doku vielversprechend las, habe ich das mal so eingebaut. Der Umherirrende 21:14, 16. Feb. 2012 (CET)
Fein gemacht.
Wenn ich mir jetzt noch zwei Zeilenumbrüche ausbitten dürfte (vor jsonp: und vor jsonpCallback:) … nur so von wegen perfekter Lesbarkeit.
Weiterhin erfolgreichen Abend --PerfektesChaos 22:08, 16. Feb. 2012 (CET)Beantworten
Darüber lässt sich Reden, wobei Codestyle natürlich immer schwierig ist. Der Umherirrende 16:57, 17. Feb. 2012 (CET)

Magnus Manske hat das Server-Script auf protokollrelative Links umgestellt. --Fomafix 20:56, 11. Feb. 2012 (CET)Beantworten

Das sieht gut aus. Erfreulich schnelle Umsetzung. Der Umherirrende 14:26, 12. Feb. 2012 (CET)
Dieser Abschnitt kann archiviert werden. Der Umherirrende 16:57, 17. Feb. 2012 (CET)

Lange Kategorienamen

[Quelltext bearbeiten]

Falls ein Bild in einer Kategorie mit einem langen Namen einsortiert ist, wird die Box sehr breit (Beispiel: Datei:PDB 1ppj EBI.jpg in commons:Category:Cytochrome c1 subunit of cytochrome bc1 complex (Ubiquinol-cytochrome c reductase), transmembrane anchor). Könnte man ev. nur die ersten n Zeichen von Kategorienamen anzeigen lassen? --Leyo 17:20, 17. Feb. 2012 (CET)Beantworten

Wie wäre es mit
#file_siblings_table { width: 210px }
? --Fomafix 17:24, 17. Feb. 2012 (CET)Beantworten
Wird damit alles, was zu lang ist, abgeschnitten oder umgebrochen? --Leyo 17:51, 17. Feb. 2012 (CET)Beantworten
Umbrochen. --Fomafix 18:00, 17. Feb. 2012 (CET)Beantworten
Das scheint mir sinnvoll zu sein. Mal schauen, wie viele Zeilen das bei obigem Beispiel ergäbe… --Leyo 18:39, 17. Feb. 2012 (CET)Beantworten
Das sind 5 Zeilen für diese Kategorie und bei den anderen auch noch ein paar Zeilen mehr. Wird zwar nach unten alles länger, aber sieht besser aus, als das breitgezogende, vorallem weil dann die beiden Bilder direkt nebeneinander sind. Und die Box ist immer gleich groß, was die Sache sicher angenehmer macht. Der Umherirrende 20:50, 17. Feb. 2012 (CET)
Ich habe es mal testweise eingebaut. Der Umherirrende 21:20, 17. Feb. 2012 (CET)
Funktioniert, danke. Wäre es denn nachteilig, diesen Einzeiler mittels mw.util.addCSS ins JS einzubinden? Wenn man ImageSiblings in anderen Sprachversionen verwenden will, muss man es nun im .js und im .css einbinden. --Leyo 23:02, 17. Feb. 2012 (CET)Beantworten
Mit dem RL2 ist das kein Problem mehr, da ein solches Gadget inklusive aller CSS-Dateien und aller lokalisierter Systemnachrichten weitergegeben werden kann. Ich habe hier trotzdem eine etwas andere Lösung umgesetzt. Vielleicht kann ich die Darstellung noch weiter verbessern. --Fomafix 23:14, 17. Feb. 2012 (CET)Beantworten
Du beziehst dich auf diesen Diff? Soweit ich das beurteilen kann, schaut es sinnvoll aus. Der Umherirrende sollte am besten auch Stellung nehmen. --Leyo 11:20, 18. Feb. 2012 (CET)Beantworten
Das de.wp als Quelle für das Laden von anderen Wikis dient, hätte nicht irgendiwe nicht gedacht, aber ist natürlich auch möglich. Ich habe daher die CSS-Seite wieder entfernt und das CSS inline gesetzt. Der Umherirrende 11:42, 18. Feb. 2012 (CET)
Bei mir funktioniert's bestens, danke! --Leyo 09:13, 19. Feb. 2012 (CET)Beantworten
Für eine vollständige Lokalisierung benötigen wir zwingend separate CSS-Dateien, damit aus dem right ein left wird, wenn eine RTL-Sprache als Benutzeroberflächenspache eingestellt ist: Beispiel auf ar. Der ResourceLoader macht dieses Flipping bei CSS-Dateien automatisch. --Fomafix 10:40, 20. Feb. 2012 (CET)Beantworten
Mitleidend mitlesend:
Die Seite wird mit <html dir="rtl"> ausgeliefert; die Orientierung ließe sich per DOM oder jQuery auslesen und geeignet umzwitschen. Bis Ende des Jahres mal RL2 das übernimmt, wäre das eine Übergangslösung.
Viel Erfolg --PerfektesChaos 11:13, 20. Feb. 2012 (CET)Beantworten
Nachtrag: Sollte jeder Browser als document.dir kennen. --PerfektesChaos 11:15, 20. Feb. 2012 (CET)Beantworten
Das right/left wird aber von uns nicht hinzugesetzt, oder? Da müsste Magnus Manske sich etwas überlegen. Müsste jemand auf JIRA ansprechen. Der Umherirrende 20:12, 20. Feb. 2012 (CET)

SyntaxError

[Quelltext bearbeiten]

Ich habe gerade auf der Seite Datei:Maffay2012.jpg in der Firefox-JavaScript-Konsole folgende Fehlermeldung erhalten:

SyntaxError: expected expression, got '<'

Der Fehler ist aufgetreten beim Laden der URL https://tools.wmflabs.org/file-siblings/index.php?language=commons&project=wikimedia&sort_by_date=0&sib_cat=1&sib_gal=1&mode=json&file=Maffay2012.jpg&uselang=de&message=Verwandte+Bilder+auf+%3Ca+href%3D%22%2F%2Fcommons.wikimedia.org%2F%22%3EWikimedia+Commons%3C%2Fa%3E&_=1490515286953 Als Antwort kommt dort derzeit

<br />

<b>Warning</b>: Creating default object from empty value in <b>/data/project/file-siblings/public_html/index.php</b> on line <b>146</b><br />

file_siblings_callback("<div id='file_siblings_div' style='border:2px solid #888888;background:white;margin:5px;padding:2px;position:absolute;right:0px'><div style='text-align:right'><a href='#' onclick='jQuery(\u0022#file_siblings_table\u0022).toggle();return false;'>↸<\/a> <a href='#' onclick='jQuery(\u0022#file_siblings_div\u0022).remove();return false;'>X<\/a><\/div><table id='file_siblings_table' ><tr><th colspan='2' align='center'>Verwandte Bilder auf <a href=\u0022\/\/commons.wikimedia.org\/\u0022>Wikimedia Commons<\/a><\/th><\/tr><tr><th colspan='2' style='background:#99E0FF'><a href='\/\/commons.wikimedia.org\/wiki\/Category:Peter_Maffay'>Peter Maffay<\/a><\/th><\/tr><tr><td align='center' valign='center'><a href='\/\/commons.wikimedia.org\/wiki\/File:Mayque_maffay_trier.jpg?uselang=de'><img border='0' src='\/\/commons.wikimedia.org\/wiki\/Special:Redirect\/file\/Mayque_maffay_trier.jpg?width=100' alt='Mayque maffay trier.jpg' title='Mayque maffay trier.jpg' \/><\/a><\/td><td align='center' valign='center'><a href='\/\/commons.wikimedia.org\/wiki\/File:Peter_Maffay_2009.jpg?uselang=de'><img border='0' src='\/\/commons.wikimedia.org\/wiki\/Special:Redirect\/file\/Peter_Maffay_2009.jpg?width=71' alt='Peter Maffay 2009.jpg' title='Peter Maffay 2009.jpg' \/><\/a><\/td><\/tr><\/table><\/div>");

--Fomafix (Diskussion) 10:14, 26. Mär. 2017 (CEST)Beantworten

So wie ich das sehe, kommt die Fehlermeldung bei jeder Bild-Datei – sowohl lokale, also auch von Commons eingebundene Bilder. Das Helferlein sollte deaktiviert werden, bis der Fehler auf dem Tool-Server behoben ist. --Fomafix (Diskussion) 10:47, 26. Mär. 2017 (CEST)Beantworten
Siehe MediaWiki Diskussion:Gadgets-definition#MediaWiki:Gadget-ImageSiblings.js defekt?, der Fehler existiert schon lange und es scheint sich niemand wirklich dafür zu interessieren. –Schnark 09:09, 27. Mär. 2017 (CEST)Beantworten