Widget:CleanPage

Aus Stupidedia, der sinnfreien Enzyklopädie!
Wechseln zu: Navigation, Suche

Mit diesem Spielzeug kann man seine Benutzerdiskussionsseite zurücksetzen. Code: {{#widget:CleanPage|id=0000000}}
Dann erscheint dort, wo man das Widget platziert hat, ein Link, der die Diskussionsseite auf die im Parameter id angegebene Versionsnummer zurücksetzt.

Mit dem optionalen Parameter text kann man den Standardtext des Links ändern, mit dem ebenfalls optionalen Parameter summary eine eigene Bearbeitungszusammenfassung angeben. text ist standardmäßig "Seite wischen" und summary "*wisch*". Mit allen Parametern sieht der Code so aus: {{#widget:CleanPage|id=0000000|text=putzen|summary=geputzt}}

Um Missbrauch zu verhindern, können normale Benutzer das Script nur im Labor und auf ihren eigenen Benutzerseiten verwenden. Bei Diktatoren funktioniert es auf allen Seiten.

Wichtig: Dieses Widget sollte nicht auf der Seite eingebunden werden, auf der es zum Einsatz kommt, sondern nur auf einer in dieser als Vorlage eingebundenen Seite (z. B. einer Unterseite). Das liegt daran, dass durch den Einbau des Widgets die Seite ja bearbeitet wird und somit natürlich eine andere Versionsnummer entsteht als die, die man in das Widget eingetragen hat. Das klingt kompliziert und umständlich, ist aber einfach so.

Folgende Vorgehensweise ist sinnvoll: Die Seite mit dem Widget auf der zurückzusetzenden Seite einbinden und danach das Widget dort platzieren und die Versionsnummer eintragen.

<script type="text/javascript">
var wCleanPage = new Object();

wCleanPage.check = function() {
  var title = mw.config.get('wgTitle').split('/', 1);
  if ((mw.config.get('wgUserName') === title[0] && $.inArray(mw.config.get('wgNamespaceNumber'), [2, 3]) !== -1) || global.groups.sysop === true || mw.config.get('wgPageName') === 'Stupidedia:Labor') {
    api.request({
      action: 'query',
      prop: 'revisions',
      rvprop: 'content',
      revids: '<!--{$id|escape:'javascript'}-->'
    }, wCleanPage.revert);
  }
}

wCleanPage.revert = function(data) {
  if (data.error) {
    alert('Es ist ein Fehler aufgetreten:\n' + data.error.code + ': ' + data.error.info);
    return;
  }
  if (!data.query.pages) {
    alert('Inhalt konnte nicht abgefragt werden.');
    return;
  }
  api.request({
    action: 'edit',
    title: mw.config.get('wgPageName'),
    text: api.makeArray(data)[0].revisions[0]['*'],
    summary: '<!--{$summary|escape:'javascript'|default:'*wisch*'}-->',
    token: global.editToken,
    minor: true,
    bot: true
  }, function() {
    location.href = mw.util.wikiGetlink(mw.config.get('wgPageName'));
  });
}
</script>
<a href="javascript:wCleanPage.check()"><!--{$text|escape:'html'|default:'Seite wischen'}--></a>