Widget:Autorenbox: Unterschied zwischen den Versionen
Aus ZUM-Unterrichten
KKeine Bearbeitungszusammenfassung Markierung: 2017-Quelltext-Bearbeitung |
KKeine Bearbeitungszusammenfassung |
||
(14 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
<includeonly> | <noinclude>Die Autorenbox verwendet Javascript auf der Seite über die MW-API um eine List der Autoren anzuzeigen. | ||
<div class=" | |||
< | Die Autorenbox kann parameterisiert werden um Autoren des Artikels oder einer Kategorie anzuzeigen und ob Unterseiten berücksichtigt werden sollen. | ||
<small class=" | |||
<div class=" | ;artikel | ||
: Zeige Autoren des Artikels. | |||
;kategorie | |||
: Zeige Autoren von Artikeln dieser Kategorie. | |||
;mit_unterseiten | |||
: Wenn es auf 'ja' gesetzt ist werden auch Autoren von Unterseiten mit angezeigt. | |||
Aktuell ist die Autorenbox deaktiviert. Da sie im Moment nicht korrekt angezeigt wird und das Seitenlayout zerstört aber auf vielen Seiten eingebunden ist. | |||
</noinclude><includeonly> | |||
<div class="autorenbox zum-hintergrund-links zum-farbe-xx-heller hidden"> | |||
<h2>Autor*innen</h2> | |||
<small class="autorenbox-updated" data-zum-hook="last-modified">aktualisiert am: </small> | |||
<div class="autorenbox-autoren" data-zum-hook="userlist"> | |||
</div> | </div> | ||
Zeile 49: | Zeile 63: | ||
prop: ['contributors', 'info'], | prop: ['contributors', 'info'], | ||
generator: 'allpages', | generator: 'allpages', | ||
gapprefix: (paramArtikel || getCurrentTitle()) + '/', | |||
gaplimit:'max' | |||
}); | }); | ||
} | } | ||
Zeile 63: | Zeile 78: | ||
continueQueryOrResolve(result, query, newPages, response.continue); | continueQueryOrResolve(result, query, newPages, response.continue); | ||
} else if (response.batchcomplete !== undefined) { | } else if (response.batchcomplete !== undefined) { | ||
result.resolve(newPages); | result.resolve(Object.values(newPages)); | ||
} | } | ||
}); | }); | ||
} | } | ||
const def = $.Deferred(); | |||
def.resolve([]); | |||
queries.reduce((result, query) => { | queries.reduce((result, query) => { | ||
const newResult = $.Deferred(); | const newResult = $.Deferred(); | ||
Zeile 73: | Zeile 90: | ||
return result.then((a) => ([...a, ...b])); | return result.then((a) => ([...a, ...b])); | ||
}); | }); | ||
}) | }, def.promise()) | ||
.then((data) => { response.resolve(data);}); | .then((data) => { response.resolve(data);}); | ||
response | response | ||
.then((pages) => { | .then((pages) => { | ||
const userCounts = pages.reduce((acc, pageData) => { | const userCounts = pages.reduce((acc, pageData) => { | ||
Zeile 106: | Zeile 122: | ||
return acc; | return acc; | ||
}, {}); | }, {}); | ||
const usernames = Object.values(userCounts.userChanges).sort((a, b) => { | const usernames = Object.values(userCounts.userChanges) | ||
.filter((userChange) => userChange.username !== 'Christian') | |||
.sort((a, b) => { | |||
let diff = b.count - a.count; | let diff = b.count - a.count; | ||
if (diff !== 0) { | if (diff !== 0) { | ||
Zeile 124: | Zeile 142: | ||
.then((...userdatas) => userdatas.filter((ud) => ud !== null)) | .then((...userdatas) => userdatas.filter((ud) => ud !== null)) | ||
.then((userdatas) => { | .then((userdatas) => { | ||
userdatas. | userdatas.map(({user, imgSrc}) => { | ||
$('<img>') | const userTitle = mw.Title.makeTitle(mw.config.get('wgNamespaceIds')['benutzer'], user); | ||
if(userTitle === null){ | |||
return null; | |||
} | |||
return $('<img>') | |||
.attr('src', imgSrc) | .attr('src', imgSrc) | ||
.wrap('<a>') | .wrap('<a>') | ||
.parent() | .parent() | ||
.attr('href', | .attr('href', userTitle.getUrl()) | ||
.wrap('<div class=" | .wrap('<div class="autorenbox-avatar" style="overflow:hidden;width:60%;margin:auto;">') | ||
.parent() | .parent() | ||
.wrap('<div class=" | .wrap('<div class="autorenbox-container" style="max-width:12ch">') | ||
.parent() | .parent() | ||
.append($('<a>').append(user).attr('href', | .append( | ||
$('<a>') | |||
.append(user) | |||
.attr('href', userTitle.getUrl()) | |||
.wrap('<div class="autorenbox-name">') | |||
.parent() | |||
); | |||
}) | |||
.filter((elem) => elem !== null) | |||
.forEach((elem) => elem.appendTo($(userlistEl))); | |||
}) | }) | ||
.then((ignored) => $(element).removeClass(' | .then((ignored) => $(element).removeClass('hidden')); | ||
});//end response.then | });//end response.then | ||
});//end loader.enqueue | });//end loader.enqueue |
Aktuelle Version vom 13. Februar 2024, 15:59 Uhr
Die Autorenbox verwendet Javascript auf der Seite über die MW-API um eine List der Autoren anzuzeigen.
Die Autorenbox kann parameterisiert werden um Autoren des Artikels oder einer Kategorie anzuzeigen und ob Unterseiten berücksichtigt werden sollen.
- artikel
- Zeige Autoren des Artikels.
- kategorie
- Zeige Autoren von Artikeln dieser Kategorie.
- mit_unterseiten
- Wenn es auf 'ja' gesetzt ist werden auch Autoren von Unterseiten mit angezeigt.
Aktuell ist die Autorenbox deaktiviert. Da sie im Moment nicht korrekt angezeigt wird und das Seitenlayout zerstört aber auf vielen Seiten eingebunden ist.